Windows TerminalのSSHからパスワードなしでログイン

TeraTermからWindows Terminalに移行して、開発環境(仮想マシン)へは毎回パスワードを入力していたけど、公開鍵認証を設定してパスワードなしでログインできるようにしたときの覚書。

環境: Windows 11 Pro 23H2, OpenSSH 8.6.0.1

OpenSSHのバージョンとパス確認
PS> gcm ssh-keygen

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     ssh-keygen.exe                                     8.6.0.1    C:\Windows\System32\OpenSSH\ssh-keygen.exe

ssh-keygenで対話しながら秘密鍵と公開鍵を作れる。
参考: Windows 用 OpenSSH でのキーベースの認証 | Microsoft Learn

鍵生成
PS:> ssh-keygen.exe -f .\.ssh\id_rsa-vm

パスフレーズに何も入力せずにエンターして生成。

公開鍵を仮想マシンサーバーにコピーする。
「.ssh/authorized_keys」は/etc/ssh/sshd_configで設定してあるデフォルト値。
# vi .ssh/authorized_keys

ssh-rsa AAAAB3....RNE= azuread\suganuma@pc-win

権限変更してsshを再起動。
# chmod 600 .ssh/authorized_keys
# systemctl restart sshd

Windows Terminalの設定から仮想マシンにSSHするコマンドラインを編集。

ssh -i ~\.ssh\id_rsa-vm root@vm-dev1

SSHログインして確認。
失敗する場合はログを確認。
# journalctl --unit sshd


【関連記事】