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