忘れないように、メモしておこう。
Windows Terminalもいいんだけど、使い慣れたTeraTermでWSLを使いたい・・・。
で、いちいちTeraTermでID/PASS入れるのもめんどくさい。
という時の手順のメモ。ただ漏れはあると思うので、そこは推測してくださいまし。
■手順
1. WSL2上で、公開鍵・秘密鍵を作っておく
例)
公開鍵=wsl_login_key.pub
秘密鍵=wsl_login_key
$ ssh-keygen -t rsa -b 4096 -f wsl_login_key $ cat wsl_login_key.pub >> ~/.ssh/authorized_keys
3. 以下のWindowsのバッチファイルを作成して、デスクトップかどこかに置いておく
USERID と PRIVATEKEY の値は、変更してください。
REM .wslconfigがなかったら作る IF NOT EXIST %USERPROFILE%\.wslconfig ((echo [wsl2]& echo localhostForwarding=true) > %USERPROFILE%\.wslconfig) SET USERID=<WSLのユーザー名> SET PRIVATEKEY=<秘密鍵のWindows上でのファイルパス> REM 初回実行時は、とりあえず一度WSLを落としてから、sshdを起動する。 wslconfigのポートフォワーディングが働かない時があるので。 FOR /f "usebackq tokens=4" %%a IN (`wsl service ssh status`) DO (set TOKI=%%a) IF NOT "%TOKI%"=="running" (wsl --shutdown & wsl -u root service ssh start) START /B /D "C:\Program Files (x86)\teraterm\" ttermpro.exe ssh2://%USERID%@localhost /auth=publickey /keyfile=%PRIVATEKEY% /nosecuritywarning