「リモートホストIDが変更されました!」エラーをクリアできるコマンドは何ですか?

「リモートホストIDが変更されました!」エラーをクリアできるコマンドは何ですか?
ssh  -p  yyyy  root@xxxxxxxxx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Offending ECDSA key in /home/debian8/.ssh/known_hosts:28
  remove with: ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy
ECDSA host key for [xxxxxxxx]:yyyy has changed and you have requested strict checking.
Host key verification failed.

警告に従ってください。

$ ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy

/home/user/.ssh/known_hosts is not a valid known_hosts file.    
Not replacing existing known_hosts file because of errors  

今どのようなコマンドを実行する必要がありますか?

答え1

キーだけが正しくないと判断して削除を選択した場合。

代替ソリューションのリスト:

1.- 推奨コマンドを実行します。

実行するコマンドはエラーメッセージにあります。

$ ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy

変える

  • xxxxSSHへの接続に使用されるホスト名またはIP
  • yyyyポート番号別(非標準の場合)

これにより、失敗したキーが削除され、再接続され、ファイルから新しいキーがインポートされます。

2.- ファイルライン 28 削除

エラーには、失敗した行が次のように指定されています。

Offending ECDSA key in /home/debian8/.ssh/known_hosts:28

テキストエディタまたは次のコマンドを使用して行番号28を削除できます。

sed -i '28d' "/home/user/.ssh/known_hosts"

その後、再接続して正しいキーを入手してください。

3.- ファイルを移動します。

ファイルをバックアップに移動する(将来の参照/使用/抽出キー用)

mv /home/user/.ssh/known_hosts /home/user/.ssh/known_hosts_backup

各新しいホストに接続するときに、sshにファイルを書き換えます。

4.- ファイル全体の削除

他のすべての方法が失敗した場合は、ファイル全体を削除してください。

rm "/home/user/.ssh/known_hosts"

再接続された新しいホストごとに再構築されます。

答え2

"/home/user/.ssh/known_hostsは有効なknown_hostsファイルではありません。"というエラーメッセージが問題を示しています。 ssh-keygenファイルが破損して解析できません。手動編集が間違っている可能性があります。

最近のバックアップがない場合の最も簡単な回避策は、破損したバックアップを片側known_hostsに移動してssh新しいバックアップを作成することです。以前に受け入れたリモートホストのキーを再度受け入れる必要があります。

$ mv /home/user/.ssh/known_hosts /home/user/.ssh/known_hosts.old

答え3

ホスト名ハッシュを使用していますか?そうでない場合は、テキストエディタを使用して/home/user/.ssh/known_hostsホスト名で始まる一致する行を削除できます。次のようになります。

hostname-or-ip ecdsa-sha2-nistp256 AAAA...

(他の興味のある読者のためにecdsa- ビットもあるかもしれませんが、ssh-rsaここではECDSAキーについて明示的に文句を言います。)

答え4

SSH警告は、リモートホストxxxxxxxxxの公開鍵が変更されたことを意味します。これは、リモートホストの管理者が公開鍵を変更したか、侵入者がコンピュータとリモートホスト間で中間者攻撃を行ったためです。

前者に該当する場合は、.ssh/known_hostsファイルを編集し、リモートホスト名で始まる行を削除して、キャッシュされた無効なキーを削除してください。

関連情報