技術ガイド · 実用ガイド
SSHで「REMOTE HOST IDENTIFICATION HAS CHANGED」と表示されたら?古い鍵を削除する前に接続先と指紋を確認
警告を消すためだけに known_hosts を削除したり、検証を無効にしたりしないでください。SSH が実際に使ったホスト名、アドレス、ポート、踏み台経路、信頼ファイルを特定し、別の信頼できる経路で期待される指紋を取得します。完全一致した場合だけ古い記録を削除します。

SSH のホスト鍵警告は単なる接続エラーではなく、本人性を確認できない状態です。ローカルの信頼記録を変更する前に、どのサーバーへ到達したか、そのサーバーが提示すべき鍵は何かを証明します。
警告を障害ではなく証拠として扱う
OpenSSH はサーバーの公開ホスト鍵を known_hosts に保存します。同じ接続先が別の鍵を出すと、再構築、鍵交換、移動、置換、傍受のどれか判別できないため拒否します。削除前に本人性を確認してください。
警告全文を保存し、ホスト名、IP、ポート、鍵方式、SHA256 指紋、ファイルと行番号を記録します。VS Code Remote SSH、Git、rsync、IDE は別設定、別ポート、踏み台、別信頼ファイルを使う場合があります。
1. SSH が実際に到達した接続先を確認
`ssh -G host` の `hostname`、`port`、`proxyjump`、`proxycommand`、`userknownhostsfile`、`globalknownhostsfile` を確認します。短い別名が別DNS名、踏み台経由のプライベートアドレス、非標準ポートを指すことがあります。
通常のネットワーク経路で名前解決し、警告、資産台帳、クラウドコンソール、管理者記録と比較します。VPNの分割DNS、ロードバランサー、再利用IP、踏み台で別マシンへ到達することがあります。経路を説明できなければ停止します。
`hostkeyalias` も確認します。設定されていれば、ホスト鍵データベースの照合には実際のホスト名ではなくその別名を使います。コマンドラインの短縮名を保存名と決めつけず、SSHが示す信頼対象とファイルを使ってください。
2. 帯域外の信頼経路から指紋を取得
認証済み事業者コンソール、シリアル/復旧コンソール、構成管理記録、確認済み管理者など、問題のSSH接続に依存しない経路を使います。管理者はサーバー側で `ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub` などを実行できます。
方式と完全なSHA256指紋を求めます。保守通知は変更理由になりますが指紋の代わりではありません。`ssh-keyscan` は現在の経路が提示する鍵の観察には使えても、独立した本人証明にはなりません。
3. 同じ方式同士で比較
ED25519 は ED25519、RSA は RSA、ECDSA は ECDSA と比較します。一方式だけ交換され、別方式の保存鍵が有効な場合があるため、実際に交渉された鍵を確認します。
接続先が説明でき、提示指紋が別経路で得た値と完全一致した場合だけ続けます。不一致なら管理者へ連絡し旧記録を保持します。行番号は診断情報であり信頼許可ではありません。
4. 正確な known_hosts 記録を探す
指定ファイルをバックアップし、`ssh-keygen -F host` を実行します。非標準ポートは `ssh-keygen -F '[host]:2222'`、保存済みIPも別途確認します。`-F` はハッシュ化名にも対応します。
別信頼ファイルなら `-f /path/to/file` を追加します。システムファイルは管理者が必要な場合があります。踏み台利用時は警告が踏み台か最終接続先かを先に特定します。
5. 確認済みの古い接続先だけを削除
一致と正当な理由を確認後、`ssh-keygen -R host`、非標準ポートなら `ssh-keygen -R '[host]:2222'` を使い、必要なら `-f` を追加します。ホスト名とIPは別々に確認します。
新しい接続の検証完了までバックアップを保持します。`~/.ssh/known_hosts` 全削除、広範囲の行削除、StrictHostKeyChecking無効化は、証拠と他サーバーの保護を失います。
`ssh-keygen -R` は指定ファイルの該当ホスト名または [ホスト名]:ポートの鍵をすべて削除します。変更された一方式だけではありません。該当記録を先に確認し、管理対象の記録や別方式の鍵の有効性が不明なら管理者に依頼します。
6. 一度だけ再接続して再確認
対話的に再接続し、接続先と方式を確認してから、表示された指紋を信頼値と再比較して受け入れます。理由、信頼情報源、新旧指紋、時刻、承認者を記録します。
再び鍵が変わる、同じ名前のバックエンドが説明不能な鍵を出す、特定クライアントやネットワークだけ警告する場合は停止します。DNS不整合、ロードバランサー、異常プロキシ、別信頼ファイル、事件の可能性があります。
正当な変更とエスカレーション条件
静的IPを残したVM再構築、文書化された鍵交換、イメージ復元、機器交換、別名移動は正当な場合があります。それでも運用責任者は接続先と指紋を確認します。
予告なし、信頼コンソールから指紋を取得できない、DNS/経路異常、指紋不一致、繰り返す変更は直ちにエスカレーションします。本人性が未解決の間は認証情報を入力しません。
