WSL1、WSL2ともにsshサーバーを動かしておく。
WSL1については下記参照。
上記記事の繰り返しになるが、Ubuntuの場合はインストール済みのものを使うと "Connection refused." となって接続を拒否される。openssh-serverを再インストールしてしまうのが手っ取り早い。
# apt purge openssh-server # apt install openssh-server # service ssh start
WSL2はIPアドレスが変動するので都度確認がいる。
wsl上のlinuxからwsl上の他のlinux(例はUbuntu)のIPアドレスを得るにはwindowsのコマンドを使う。
/mnt/c/WINDOWS/system32/wsl.exe -d Ubuntu -e hostname -I
sshの'-J'オプションを使ってWSL2のUbuntuに接続。
ssh $(ssh XXXX '/mnt/c/WINDOWS/system32/wsl.exe -d Ubuntu -e hostname -I') -J XXXX
'XXXX'はwindows機のアドレス(=WSL1のアドレス)。シェルのコマンド置換でUbuntuのIPアドレスを埋め込んでいる。