PuTTYを使用して新しいホストに接続すると、よく警告が表示されます
サーバーのホストキーがPuTTYがレジストリにキャッシュしたキーと一致しません。
押した後
はい
PuTTYがサーバーのRSAキーをWindows 10のレジストリに追加すると、リモートサーバーにログインできるようになり、警告が再び表示されなくなります。
RSAキーは、公開と秘密のペアとして提供されることを知っています。私が理解しようとしているのは、サーバーが私のローカルマシンに保存したキー、つまりサーバーの公開キーだと思います。
また、PuTTYがサーバーへの最初のSSH接続を行ったとき、サーバーはどのキーを転送するかをどのように決定しますか?サーバーが公開鍵のリストを持っていると仮定しますが、接続を試みるクライアントの一般的な鍵はありますか?
そして、この汎用キーはサーバーのどこに保存されていますか?下 /root/.ssh/ authorized_keys
?
一般的に、あなたが得るときは非常に注意する必要があります
警告-潜在的なセキュリティ違反!
サーバーのホストキーがPuTTYがレジストリにキャッシュしたキーと一致しません。
MITM攻撃 の兆候です。
警告-潜在的なセキュリティ違反! についてはPuTTYのドキュメントも参照してください(メッセージの主要部分は何ですか?.
newサーバーではこのメッセージは表示されません。もちろん、新しいサーバーが破棄されたサーバーのIPアドレス/ホスト名を再利用しない限り。その場合、警告を無視しても問題ありません。
もちろん、PuTTYによってキャッシュされるpublicキーです。 privateキーは秘密であり、サーバー管理者以外の誰もがアクセスできないようにする必要があります。したがって、SSHclientがそれを取得する方法はありません。
実際、サーバーには、さまざまなアルゴリズム(RSA、DSA、ECDSA、ED25519などのアルゴリズムごとに1つ)の鍵ペアがいくつかあります。クライアントとサーバーは、使用する最適なアルゴリズムに同意します(サーバーとクライアントの両方でサポートされているアルゴリズムの中で最高のもの)。
キーペアは通常/etc/ssh
に保存されます(LinuxのOpenSSH)。
あなたの質問の言葉遣いは、あなたがサーバーへの認証に使用するキーペアとサーバー/ホストキーペアを混同するかもしれないことを示唆していますが。
SSHキーペアの理解 に関するmyの記事を参照してください。
私はRSAキーがペアとして公開されていることを知っています、私が理解しようとしているのは、サーバーが私のローカルマシンに保存したキー、サーバーの公開キーだと思います
はい、PuTTYはサーバーの公開鍵の拇印を保存します。次のキーの下のレジストリに保存されているすべてのキーを確認できます:HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
また、PuTTYがサーバーへの最初のSSH接続を行ったとき、サーバーはどのキーを転送するかをどのように決定しますか?サーバーが公開鍵のリストを持っていると仮定しますが、接続を試みるクライアントの一般的な鍵はありますか?そして、この汎用キーはサーバーのどこに保存されていますか?
サーバーには、鍵のタイプ(RSA、DSAなど)ごとに1つのホスト鍵しかありません。それらが格納される場所は構成によって異なりますが、たとえば、Ubuntuシステムのデフォルトでは、それらは通常/etc/ssh
に格納されます