Closed1
手動でSSHログインできるがシェルスクリプトからのSSHログインに失敗する

手動でSSHログインできるが、シェルスクリプトからのSSHログインには失敗するケース。
手動接続は「IPアドレス」で、シェルスクリプト は「ホスト名」で接続していたことにより、known_hosts に記録されたフィンガープリントのエントリが一致しなかったことが原因。
手動でのSSHログインの際にknown_hostsにはIPアドレスでエントリされる。この状態で「ホスト名」により接続すると未知のサーバーと判定され、フィンガープリントの再確認が必要となる。
$ cat known_hosts
xxx.xxx.xxx.xxx ssh-ed25519 AAAA...=
シェルスクリプトからのSSHログインは、ホスト名での接続だった。手動の場合はフィンガープリントの再確認をパスすれば接続できるが、スクリプトの場合はSSH接続中に対話が必要な状況になると、失敗する。
解決策の一つは、ホスト名でもエントリしておくこと。事前にホスト名でSSHログインしておけばよい。
ssh ssh-user@dest-server
The authenticity of host 'dest-server (xxx.xxx.xxx.xxx)' can't be es
ED25519 key fingerprint is SHA256:.......
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:1: xxx.xxx.xxx.xxx
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
フィンガープリントの確認をパスすると、ホスト名でknown_hostsにエントリされる。これで、ホスト名での接続の際にフィンガープリントの再確認は発生しない。
$ cat known_hosts
xxx.xxx.xxx.xxx ssh-ed25519 AAAA...=
dest-server ssh-ed25519 AAAA...=
このスクラップは3ヶ月前にクローズされました