時々、既知のホスト ファイルにないサーバーに SSH 経由で接続すると、ssh から次のメッセージが表示されることがあります。
ホスト '[domain] ([ip_address])' の信頼性を確立できません。RSA
キーのフィンガープリントは [fingerprint] です。
接続を続行しますか (はい/いいえ)?
「はい」を選択すると、次のメッセージが表示されます。
警告: '[ドメイン]' (RSA) が既知のホストのリストに永続的に追加されました。
しかし、他のサーバー(github.comなど)では、続行するように求められず、代わりにすぐに少し表現が異なる次のメッセージが表示されます。
警告: IP アドレス '[ip_address]' の RSA ホスト キーが既知のホストのリストに永続的に追加されました。
この行動の違いは何によって起こるのでしょうか?そしてもっと重要なのは、私がないプロンプトが表示された場合、サーバーの操作を続行する前に、known_hosts ファイルに追加されたキーを手動で確認する必要がありますか?
どちらの場合も、公開鍵で認証しています。システムにインストールされた OpenSSH を使用して、OS X 10.10.3 を実行しています。
答え1
これはおそらく、これらのサイトでは SSH フィンガープリントが DNS に保存されており、ユーザーがキーを検証する必要がなくなったことが原因です。
この機能はSSHFPレコードと呼ばれます。これを確認するには、ssh-keygen -r github.com
答え2
結局私はただのバカだった。
一方、ジャクジェが言うようにSSHFPでは、サイトがDNSレコードに公開鍵のフィンガープリントを保存することを許可しています。この場合、鍵はだったすでに known-hosts ファイルのドメイン名の下に存在します (これは、コマンド-v
にデバッグ フラグを追加することで発見しましたssh
)。
私が受け取った情報メッセージに説明されているように、ファイルに新しい行が追加されていました使用されているIPアドレス。