🦔
コンテナへ別PCからssh接続
はじめに
最近記事にしていた作業のまとめみたいな感じです。
- 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
home から vscode の 拡張機能の"remote-ssh" で pro に接続して、 vscode の拡張機能"container tools" 入れたら docker の操作も vscode でできる。 これだと 開発用のコンテナに ssh は入れずに vscode で 直接コンテナに入り込んで作業できそう。 vscode すごいなぁ。 このあと、go言語の開発をコンテナでやってみなければ。