1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL内のUbuntuに簡単にSSH接続する方法

Posted at

はじめに

WSL2内のUbuntuにSSH接続する方法を紹介する。今回は、WSLのネットワークはミラーモードとし、簡単に接続設定できるようにする。

動作確認環境

  • Windows 11
  • WSL
    wsl --version
    WSL バージョン: 2.6.1.0
    カーネル バージョン: 6.6.87.2-1
    WSLg バージョン: 1.0.66
    MSRDC バージョン: 1.2.6353
    Direct3D バージョン: 1.611.1-81528511
    DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
    Windows バージョン: 10.0.22631.5909
    
    • Ubuntu 22.04

前提条件

  • Windowsには、SSHサーバーをインストールしない
    • WindowsのOpenSSH Serverとポート 22 が競合するため(入れるなら WSL側は別ポートに変更)
  • WSLのネットワーク設定はミラーモードとする
    • ミラーモードとは
      • WSL内のUbuntuのネットワークはホストのWindowsと同じになるネットワークの設定
    • ミラーモードとすることで、ポートフォワーディングなどの設定が不要となり設定が簡単になる
  • WSL内にUbuntu22.04がインストールされている

方法

WSLの設定

「WSL Settings(Linux用Windowsサブシステム設定)」を開いて、「ネットワーク」から以下を設定する。

  • ネットワークモード
    • Mirroredを選択する
  • Hyper-Vファイアウォールが有効
    • オフにする

    補足
    Hyper-Vファイアウォールを完全にオフにしないで、個別にポートを許可する方法もあるが、今回は簡単に設定を行うためにオフにする。セキュリティを強化したい方は個別にポートを許可する方法を推奨する(詳細はこちらを参照)。

image.png

WSLが起動している場合はシャットダウンする。

wsl --shutdown

C:\Users\{username}\.wslconfigの設定が変更されていることを確認する。
コマンドプロンプトやPowerShellを開いて、以下のコマンドで確認できる。

cd C:\Users\{username}
cat .\.wslconfig

以下のようになっていれば成功。

[wsl2]
networkingMode=Mirrored
firewall=false

WSL内のUbuntuの設定

Ubuntu22.04を起動して、SSHサーバーをインストールする。

sudo apt update
sudo apt install openssh-server

SSHの自動起動設定をする。

sudo systemctl enable --now ssh
sudo systemctl status ssh

ファイアウォールの設定

Windowsで利用しているファイアウォールの設定で、ポート22の受信を許可する。

Windows Defenderファイアウォールの場合

Windowsセキュリティの「ファイアウォールとネットワーク保護」から「詳細設定」を押して「セキュリティが強化されたWindows Defenderファイアウォール」を開く。

「受信の規則」-「新しい規則」からポート22の受信を許可する設定を追加する。

ポートを選択して次へを押す。
image.png

以下のように設定して次へを押す。

  • TCP
  • 特定のローカルポート(S): 22
    image.png

「接続を許可する(A)」を選択して次へを押す。
image.png

適用したい項目を選択して次へを押す。
image.png

任意の名前(例:SSH受信)をつけて次へを押す。
image.png

以下のように追加されていれば成功。

image.png

別PCから接続確認

UbuntuでIPアドレスを確認し、別のPCからそのIPアドレスへ接続確認する。

ssh username@{ip_address}
  • username: WSL内のUbuntuのユーザー名

【オプション】WSL2の自動起動

Windows起動時に、WSLを自動起動したい場合に設定する。色々やり方はあるが、簡単な方法としてWindowsスタートアップで設定する方法を紹介する。

WSL内のUbuntuの実行ファイルは以下に保存されている。

%userprofile%\AppData\Local\Microsoft\WindowsApps\

Ubuntu22.04の場合は以下が実行ファイルのパスとなっている。

%userprofile%\AppData\Local\Microsoft\WindowsApps\ubuntu2204.exe

上記フォルダに移動して、起動したいUbuntuなどのディストリビューションのショートカットを作成する。

ubuntu2204.exeのショートカットを作成する場合は、実行ファイルを右クリックして、「その他のオプションを確認」を押す。

image.png

「送る(N)」-「デスクトップ(ショートカットを作成)」を押してショートカットを作成する。

image.png

ショートカット作成時に、「実行時の大きさ(R):」を「最小化」にしておくとWSLの自動起動時にターミナルが邪魔にならないので設定しておくと良い。

image.png

デスクトップに作成されたショートカットファイルを以下のスタートアップフォルダに入れて設定完了。

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

まとめ

WSL2内のUbuntuにSSH接続する方法を紹介した。今回は、WSLのネットワークはミラーモードとし簡単に接続設定できることを確認できた。簡単にWSL内のUbuntuにアクセス可能となるので試してみてほしい。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?