~/.ssh/known_hosts を削除した後も「ホストキーの確認に失敗しました」

~/.ssh/known_hosts を削除した後も「ホストキーの確認に失敗しました」

sshDebian がインストールされている Linux システムからサーバーにアクセスしようとすると、次のメッセージが表示されます。

Host key verification failed.

私がオンラインで見つけた唯一の助けはキーを削除することでした~/.ssh/known_hosts。まあ、そうしただけでなく、~/.ssh確認するためにキー全体を削除しましたが、それも役に立たず、まだHost key verification failed.エラーがあります。

答え1

わかりました、答えました。

sshオプションを実行すると、-v実際のエラーが表示されます。

これは誤ってアクセス権(何でも)を誤って設定したために/dev/tty発生し、sshは何らかの理由でそれを好まない。sudo chmod 666 /dev/tty解決したようです。

答え2

これで元のポスターの問題を解決しました。ただし、他の人が検索でこの問題を発見し、その症状が同じ原因で発生しない場合:

問題のある行を削除~/.ssh/known_hostsまたは削除すると、キャッシュされたホストキーが消去されます。ただし、ホストキーには、特に要求しない限り、キャッシュされないシステム全体のキャッシュもあります/etc/ssh/ssh_known_hosts。ただし、ホストキーの確認に問題がある場合は、これら2つのファイルを見てください。

答え3

この問題は、特に複数のSSH実装が接続されているWindowsを処理するときにさまざまな方法で発生する可能性があります。

Cygwin で SSH サーバーを実行している Windows 10 システムに SSH で接続するときにこの問題が発生しました。このプロンプトで実行すると、ssh~/.ssh を使用して ssh ファイルを cygwin(/home/username) に保存する cygwin バージョンの ssh が実行されます。

ただし、git同じプロンプトで実行し、GitがWindows経由でインストールされている場合(私の場合)、C:\ Users \ username.sshにあるsshファイルを使用します。

通常、キャッシュされたgitのホストキーを実行しますssh hostnameが、この場合は既知の_hostsファイルが異なるため動作しません。

ある Known_hosts ファイルから別のファイルにキーをコピーすると、gitコマンドは正常に動作します。

関連情報