Windows上のWSL2に別のPCからSSH接続する方法

WSL

はじめに

Windows上のWSL2は簡単に使用できるLinux環境を提供していますが、別のPCからのSSH接続が難しい場合があります。
本記事では、Windowsのポートフォワーディングを使用して、同一ネットワーク上の別のPCからWSL2へSSH接続する方法を解説します。

使用環境

  • ホストPC: Windows 11
  • Linuxディストリビューション: Ubuntu

WSL2側の設定

SSHサーバーの確認とインストール

まず、WSL2環境にSSHサーバーがインストールされているか確認します。

sudo systemctl status ssh

SSHサーバーが入っていない場合は、以下のコマンドでインストールします。

sudo apt install openssh-server

SSHサーバーの自動起動設定

WSL2を起動するたびにSSHサーバーを再起動する手間を省くために、自動起動を有効にしておきます。

sudo systemctl enable ssh

WSL2の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番ポート へマッピングしています。必要に応じて、listenportconnectaddress の値を変更してください。

ポートフォワーディングの確認

設定が正しく適用されたか確認するには、以下のコマンドを実行します。

netsh interface portproxy show v4tov4

Windows ファイアーウォールの設定

外部からのアクセスを許可するために、Windows ファイアーウォールで受信ルールを追加する必要があります。以下の手順で設定してください。

  1. Windows 検索窓で「ファイアーウォール」と検索し、「Windowsディフェンダーファイアーウォール」を開きます
  2. 左側の「詳細設定」をクリックします
  3. 「受信の規則」を選択します
  4. 右側の「新しい規則」をクリックします
  5. 規則の種類で「ポート」を選択して「次へ」をクリックします
  6. 「特定のローカルポート」を選択し、ポートフィールドに 8900 を入力して「次へ」をクリックします
  7. 接続が許可されるように設定して「次へ」をクリックします
  8. 規則の適用をドメイン等に限定します(セキュリティのため)
  9. 規則に分かりやすい名前を付けて完了します

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接続を可能にするには、以下の手順が必要です:

  1. WSL2側: SSH サーバーのインストールと自動起動設定
  2. WSL2側: IPアドレスの確認
  3. Windows側: ポートフォワーディングの設定
  4. Windows側: ファイアーウォールルールの追加
  5. 接続確認: リモートPCからのSSH接続テスト

この設定により、ネットワーク接続可能な任意のPCからWSL2環境にSSH経由でアクセスできるようになります。
セキュリティのため、必要に応じてファイアーウォールルールを適切に制限することをお勧めします。

コメント

タイトルとURLをコピーしました