(WSLをバージョンアップして確認できましたので、修正しました。)
- WSL1, WSL2ともにUbuntu20.04 (20.04.3)
- TeraTerm 4.106
で確認済です。
下記に記載している、パスワードなし・公開鍵使用のsshログインは、
ログイン元の秘密鍵のセキュリティ保持が大前提
です。それができない人は使わないこと。
やっていることの全体像
- WSLに(この例ではRSAの)公開鍵・秘密鍵をインストール
- localhostにパスワードなし・公開鍵使用でsshログインできる環境をセットアップ
- その秘密鍵をTeraTermのsshログインに使用
準備 - WSLでのsshログイン確認
WSLで、
- sshのインストール
- RSAの公開鍵・秘密鍵のインストール
- localhostにRSAの公開鍵をコピー
$ ssh-copy-id -i ~/.ssh/id_rsa.pub localhost
上記を実施すれば、Ubuntuアイコンのターミナルで、
$ ssh localhost
が、パスワードなしでログインできることを確認しておく
TeraTermでのログイン確認
次に、teratermを立ち上げて、下記の手順でWSLにログインできることを確認する
- 「新しい接続」ウィンドウで、
- TCP/IPを選択
- ホスト:localhostを入力
- サービス:SSHを選択
- SSHバージョン:SSH2を選択
- 「SSH認証」ウィンドウで、
- ユーザー名:WSLのログインユーザー(WSLインストール時に指定したもの)
- パスワード:空欄のまま
- RSA/DSA/ECDSA/ED25519鍵を使うを選択
- 秘密鍵ボタンを押して、「公開鍵・秘密鍵のインストール」でインストールした(RSAの)秘密鍵を指定
WSL1 (Ubuntu16.04)の場合の秘密鍵の指定
(Windowsのホームディレクトリ)\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\[username]\.ssh\id_rsa
WSL2 (Ubuntu18.04)の場合の秘密鍵の指定
\\wsl$\Ubuntu-18.04\home\[username]\.ssh\id_rsa
(ここで[username]
はWSLのログインユーザー名)
TeraTermのショートカット作成
TeraTermのショートカットを作成し、右クリックして出てくるプロパティウィンドウで
- ショートカットタブを選択
- リンク先を下記に変更
WSL1 (Ubuntu16.04)の場合
"%ProgramFiles(x86)%\teraterm\ttermpro.exe" [username]@localhost /auth=publickey /keyfile=%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\[username]\.ssh\id_rsa
WSL2 (Ubuntu18.04)の場合
"%ProgramFiles(x86)%\teraterm\ttermpro.exe" [username]@localhost /auth=publickey /keyfile=\\wsl$\Ubuntu-18.04\home\[username]\.ssh\id_rsa
([username]
はWSLのログインユーザー名)
このショートカットをダブルクリックすれば、WSLにログインできるはず
補足(蛇足)
同様の準備と手順で、localhostをリモートのsshサーバーのホスト名に変更すれば、
リモートのsshログインのショートカットになる