sshで「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」原因と対策は?

「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」は、SSH接続先サーバーの識別情報(ホスト鍵)が前回と異なる場合に表示されるセキュリティ警告です。主な原因はサーバー再構築やIPアドレスの変更です。対策として、端末の~/.ssh/known_hostsから該当ホストの旧情報を削除(ssh-keygen -R [IPまたはホスト名])します

原因

  • サーバーの再構築・入れ替え: サーバーのOS再インストールや再設定により、ホスト鍵が変更された。
  • IPアドレスの再利用: DHCPなどで、以前とは別のサーバーに同じIPアドレスが割り当てられた。
  • 中間者攻撃 (Man-in-the-Middle Attack): 悪意のある第三者が通信を傍受している(可能性は低いが、セキュリティリスクとして警告される)。 

対策(解決手順)

最も安全で一般的な方法は、ローカルマシンのknown_hostsファイルから古い情報を削除し、再登録することです。

1. コマンドで該当ホストの情報を削除(推奨)

ターミナル(端末)で以下のコマンドを実行します。

bash

ssh-keygen -R [接続先のIPアドレスまたはホスト名]

このコマンドにより、~/.ssh/known_hostsから該当する行が自動的に削除されます。 

2. 再度SSH接続

エラーが出たSSH接続コマンドを再度実行します。 

bash

ssh username@hostname

新しいホスト鍵を登録するか尋ねられるので、「yes」と入力して接続を確定させます。 

3. 手動でファイルを編集して削除 

もしコマンドが使えない場合は、エディタで ~/.ssh/known_hosts を開き、警告メッセージに表示された行数(例: Offending ECDSA key in /Users/xxx/.ssh/known_hosts:413)を直接削除します。

注意点

もし、サーバーの変更など思い当たる節がないのにこのエラーが表示された場合、第三者による不正アクセス(なりすまし)の可能性があります。管理者に確認してください。

カテゴリー: 未分類 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です