🦔

コンテナへ別PCからssh接続

に公開1

はじめに

最近記事にしていた作業のまとめみたいな感じです。

  • 2台のパソコンを開発用と通常用で使います
  • 通常用には vscode 以外の開発関連のアプリは入れません
  • 開発用は別の部屋にある(基本作業はリモートデスクトップ)
  • 開発作業は vscode の拡張機能の remote-ssh でします
  • 開発用には docker を使って開発環境はその中につくります

構成

開発用

  • windows11 pro
  • sshd はなし
  • powershell7
  • wsl2 (ネットワークは bridged)
    • ubuntu 24.04
    • sshd
    • docker (docker desktop ではない)
    • firewall 入れてない

通常用

  • windows11 home
  • powershell7
  • wsl2 (いらなかった)
  • vscode

設定(開発側)

仮想スイッチを作成

「外部ネットワーク」を今動いているネットワークのに変更する

確認

作成したものが表示されているはず

Get-NetAdapter

.wslconfig 作成

ホームディレクトリ (C:\Users\yukip) に作成する

[wsl2]
networkingMode=bridged
vmSwitch="Realtek2.5G"

確認

wsl --shutdown
wsl
hostname -I

アドレスが windows11 と同じネットワークなら大丈夫

sshd インストール

ubuntu に openssh-server をインストール

sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh

sshd_config 確認

"PasswordAuthentication yes" が有効になってたら no かコメントアウトする

grep PasswordAuthentication /etc/ssh/sshd_config

キーのファイルを作成

.ssh のフォルダはすでにあったので、キーだけ登録する

echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOLmB/QNbTW+kSFVbbpRnMhelEbZWWOMqxc68B9/mHAi yukip@i5-10400" >> ~/.ssh/authorized_keys

sudo systemctl restart ssh

コンテナ

dockerfile

FROM ubuntu:24.04

RUN apt-get update && \
    apt-get install -y openssh-server

RUN mkdir -p /run/sshd
RUN mkdir -p /home/ubuntu/.ssh
 
RUN cat <<'END' > /home/ubuntu/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOLmB/QNbTW+kSFVbbpRnMhelEbZWWOMqxc68B9/mHAi yukip@i5-10400
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM6uTTorSMRo4pxaFZLjXkjdJvSwc9MoeW4pjdzkoe4O yukip@i5-14400
END

RUN chown -R ubuntu:ubuntu /home/ubuntu/.ssh

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]

build

docker build -t ssh:1 .

run

docker run -d -p 2224:22 --name ssh2 -h ssh1 ssh:31

設定(開発側)

vscode

  • vscode をインストールする(別記事参照)
  • "remote-ssh" 拡張機能をインストールする

config

"C:\Users\yukip.ssh\config" を作成する

Host i5-14400
    HostName 192.168.1.18
    User yukip

Host container
    HostName 192.168.1.18
    User ubuntu
    Port 2224

接続

vscode からもつながったけど画像がなかった

コンテナへ接続

とりあえず powershell で接続

ssh ubuntu@192.168.1.18 -p 2224

ubuntu へもつながる

画像はないけどつながった
authauthorized_keys は作成してあります

ssh yukip@192.168.1.18

おわり

とりあえず、これでいいか。

Discussion

yukipyukip

home から vscode の 拡張機能の"remote-ssh" で pro に接続して、 vscode の拡張機能"container tools" 入れたら docker の操作も vscode でできる。 これだと 開発用のコンテナに ssh は入れずに vscode で 直接コンテナに入り込んで作業できそう。 vscode すごいなぁ。 このあと、go言語の開発をコンテナでやってみなければ。