はじめに
Windows上のWSL2は簡単に使用できるLinux環境を提供していますが、別のPCからのSSH接続が難しい場合があります。
本記事では、Windowsのポートフォワーディングを使用して、同一ネットワーク上の別のPCからWSL2へSSH接続する方法を解説します。
使用環境
- ホストPC: Windows 11
- Linuxディストリビューション: Ubuntu
WSL2側の設定
SSHサーバーの確認とインストール
まず、WSL2環境にSSHサーバーがインストールされているか確認します。
sudo systemctl status sshSSHサーバーが入っていない場合は、以下のコマンドでインストールします。
sudo apt install openssh-serverSSHサーバーの自動起動設定
WSL2を起動するたびにSSHサーバーを再起動する手間を省くために、自動起動を有効にしておきます。
sudo systemctl enable sshWSL2のIPアドレスを確認
次に、Windows側からアクセスするためのWSL2のIPアドレスを確認します。
$ ip a show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:15:af:67 brd ff:ff:ff:ff:ff:ff
inet 172.17.104.210/20 brd 172.17.111.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe15:af67/64 scope link
valid_lft forever preferred_lft foreverこの例では、WSL2のIPアドレスが 172.17.104.210 であることがわかります。このアドレスをメモしておいてください。これ以降の手順で必要になります。
Windows側の設定
ポートフォワーディングの設定
Windows側でポートフォワーディングを設定して、Windows ホストのポートをWSL2のSSH ポート(22番)へマッピングします。以下のコマンドを PowerShell で実行してください。
netsh interface portproxy add v4tov4 listenaddress=* listenport=8900 connectaddress=172.17.104.210 connectport=22この例では、Windows ホストの 8900番ポート を WSL2の 22番ポート へマッピングしています。必要に応じて、listenport と connectaddress の値を変更してください。
ポートフォワーディングの確認
設定が正しく適用されたか確認するには、以下のコマンドを実行します。
netsh interface portproxy show v4tov4Windows ファイアーウォールの設定
外部からのアクセスを許可するために、Windows ファイアーウォールで受信ルールを追加する必要があります。以下の手順で設定してください。
- Windows 検索窓で「ファイアーウォール」と検索し、「Windowsディフェンダーファイアーウォール」を開きます
- 左側の「詳細設定」をクリックします
- 「受信の規則」を選択します
- 右側の「新しい規則」をクリックします
- 規則の種類で「ポート」を選択して「次へ」をクリックします
- 「特定のローカルポート」を選択し、ポートフィールドに
8900を入力して「次へ」をクリックします - 接続が許可されるように設定して「次へ」をクリックします
- 規則の適用をドメイン等に限定します(セキュリティのため)
- 規則に分かりやすい名前を付けて完了します
Windows ホストのIPアドレスを確認
最後に、別のPCから接続するためにWindowsホストのIPアドレスも確認しておきます。
ipconfig出力結果から、Windows ホストのIPアドレスを確認できます(通常は 192.168.x.x または 10.x.x.x の形式です)。
接続確認
別のPC から以下のコマンドでSSH接続できるか試してみます。
ssh -p 8900 username@<Windows_ホストのIPアドレス>例えば、Windows ホストが 192.168.1.100 の場合:
ssh -p 8900 username@192.168.1.100まとめ
Windows上の WSL2 へ別のPCからSSH接続を可能にするには、以下の手順が必要です:
- WSL2側: SSH サーバーのインストールと自動起動設定
- WSL2側: IPアドレスの確認
- Windows側: ポートフォワーディングの設定
- Windows側: ファイアーウォールルールの追加
- 接続確認: リモートPCからのSSH接続テスト
この設定により、ネットワーク接続可能な任意のPCからWSL2環境にSSH経由でアクセスできるようになります。
セキュリティのため、必要に応じてファイアーウォールルールを適切に制限することをお勧めします。


コメント