「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)を直接削除します。
注意点
もし、サーバーの変更など思い当たる節がないのにこのエラーが表示された場合、第三者による不正アクセス(なりすまし)の可能性があります。管理者に確認してください。