以前に接続していたサーバーに接続しようとしています。ただし、最新バージョンの OpenSSH は DSA キーを使用しません。接続しようとすると、次のエラーが発生します。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ***RSA*** key sent by the remote host is
SHA256:mxVLlJWwlY7pRm1nhOksy0eS4KIQbAE8nv7x0p3Ds8Q.
Please contact your system administrator.
Add correct host key in /Users/john/.ssh/known_hosts to get rid of this message.
Offending ***DSA*** key in /Users/john/.ssh/known_hosts:25
***RSA*** host key for example.com has changed and you have requested strict checking.
Host key verification failed.
known_hosts
私が見つけたのは、DSAキーが保存されていますが、まだRSAキーが保存されていないことが問題であるということです。 RSAキーを追加すると、この問題は解決されます。
メッセージが誤解を招くようです。 RSA ホスト鍵が変更されていません。
OpenSSHでまだRSAキーがないことを知らせ、キーを追加できるようにしたいです。また、DNSのキーを確認しMatching host key fingerprint found in DNS.
(私が設定した)メッセージを表示する必要があります。
OpenSSHにバグを報告する価値はありますか?
答え1
メッセージが誤解を招くようです。 RSA ホスト鍵が変更されていません。
メッセージが有効です。あなたのキーknown_hosts
はDSAで、サーバーはRSAを送信し、互いに異なり、間違っています。
OpenSSH 6.8 以降、サーバーは認証後にすべての鍵を送信し、ホスト鍵の交換または廃止を簡素化します。
十分に新しいクライアントとサーバーがある場合は、回避策を使用して一時的にDSAキーを受け入れ、クライアントに新しいキーを選択させます。
ssh -oHostKeyAlgorithms=+ssh-dss your_remote_host
サーバーに以前のバージョンがある場合は、質問に記載されているようにこの操作を手動で実行する必要があります。
また、新しいキーを受け入れるように構成されたクライアントも必要ですUpdateHostKeys yes
。