🍜

MacからWSL2にssh接続する

2025/03/09に公開

前回、WindowsのWSL上に立てたGitlabサーバーにMacからアクセスしました。
そうなるとMacからWSLへのsshもやりたくなります。

https://zenn.dev/ramenpanda/articles/608930498885c7

参考にした記事

最初「MacからWindowsにssh」と検索してしまい、以下の記事に記載の通り、「WindowsにSSHサーバーを立てる必要がある?」等と勘違いしてしまいましたが、WSLに繋げるのであれば不要です。
https://zenn.dev/katan/articles/d3aa611964fed3

WSL上でsshdを立て、ポートフォワーディングしてさえあげればMacからWSLにアクセスできます。
WSLについてのネットワーク構成は以下の記事が参考になります。
https://qiita.com/yabeenico/items/15532c703974dc40a7f5?utm_source=chatgpt.com

手順

Macでsshサービスを起動

sudo systemctl start ssh

sshサービスがない場合はインストールしてください。

アクティブになったことを確認します。

sudo systemctl status ssh

Windows→WSLへポートフォワード

WSLでipアドレスを調べます。

ip a

PowerShellを管理者権限で開き、WSLへのポートフォワードの設定します。

netsh interface portproxy add v4tov4 listenport=22 connectaddress=<IPアドレス> connectport=22
netsh interface portproxy show v4tov4

こんな感じになっていればOKです。

MacからWSLにアクセス

WindowsのIPアドレスを調べておき、Macのターミナルでsshをします。

ssh <WSLのユーザー>@<WindowsのIPアドレス>

(例)私の場合、ユーザー名ushibuta、WindowsのIPアドレスが192.168.40.217なので、以下のようになりました。

ssh ushibuta@192.168.40.217

パスワードを聞かれるので、WSLのユーザーのパスワードを入力します。

画像はVSCodeですが、無事入ることができました。

備考

  • ssh通信自体が確立できていない場合は、Windowのファイアウォールあたりが原因かもしれません。
  • ssh通信が確立できているが、パスワード認証が許可されていない場合はWSLのssh_configの設定を疑ってみると良いと思います。

Discussion