web-dev-qa-db-ja.com

PuTTY警告:サーバーのホストキーがPuTTYがレジストリにキャッシュしたものと一致しません

PuTTYを使用して新しいホストに接続すると、よく警告が表示されます

サーバーのホストキーがPuTTYがレジストリにキャッシュしたキーと一致しません。

押した後

はい

PuTTYがサーバーのRSAキーをWindows 10のレジストリに追加すると、リモートサーバーにログインできるようになり、警告が再び表示されなくなります。

RSAキーは、公開と秘密のペアとして提供されることを知っています。私が理解しようとしているのは、サーバーが私のローカルマシンに保存したキー、つまりサーバーの公開キーだと思います。

また、PuTTYがサーバーへの最初のSSH接続を行ったとき、サーバーはどのキーを転送するかをどのように決定しますか?サーバーが公開鍵のリストを持っていると仮定しますが、接続を試みるクライアントの一般的な鍵はありますか?

そして、この汎用キーはサーバーのどこに保存されていますか?下 /root/.ssh/ authorized_keys

4
Junchen Liu

一般的に、あなたが得るときは非常に注意する必要があります

警告-潜在的なセキュリティ違反!

サーバーのホストキーがPuTTYがレジストリにキャッシュしたキーと一致しません。

MITM攻撃 の兆候です。

警告-潜在的なセキュリティ違反! についてはPuTTYのドキュメントも参照してください(メッセージの主要部分は何ですか?.

newサーバーではこのメッセージは表示されません。もちろん、新しいサーバーが破棄されたサーバーのIPアドレス/ホスト名を再利用しない限り。その場合、警告を無視しても問題ありません。


もちろん、PuTTYによってキャッシュされるpublicキーです。 privateキーは秘密であり、サーバー管理者以外の誰もがアクセスできないようにする必要があります。したがって、SSHclientがそれを取得する方法はありません。


実際、サーバーには、さまざまなアルゴリズム(RSA、DSA、ECDSA、ED25519などのアルゴリズムごとに1つ)の鍵ペアがいくつかあります。クライアントとサーバーは、使用する最適なアルゴリズムに同意します(サーバーとクライアントの両方でサポートされているアルゴリズムの中で最高のもの)。


キーペアは通常/etc/sshに保存されます(LinuxのOpenSSH)。


あなたの質問の言葉遣いは、あなたがサーバーへの認証に使用するキーペアとサーバー/ホストキーペアを混同するかもしれないことを示唆していますが。

SSHキーペアの理解 に関するmyの記事を参照してください。

4
Martin Prikryl

私はRSAキーがペアとして公開されていることを知っています、私が理解しようとしているのは、サーバーが私のローカルマシンに保存したキー、サーバーの公開キーだと思います

はい、PuTTYはサーバーの公開鍵の拇印を保存します。次のキーの下のレジストリに保存されているすべてのキーを確認できます:HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

また、PuTTYがサーバーへの最初のSSH接続を行ったとき、サーバーはどのキーを転送するかをどのように決定しますか?サーバーが公開鍵のリストを持っていると仮定しますが、接続を試みるクライアントの一般的な鍵はありますか?そして、この汎用キーはサーバーのどこに保存されていますか?

サーバーには、鍵のタイプ(RSA、DSAなど)ごとに1つのホスト鍵しかありません。それらが格納される場所は構成によって異なりますが、たとえば、Ubuntuシステムのデフォルトでは、それらは通常/etc/sshに格納されます

1
heavyd