「【過去の男は忘れて】一途なWindowsちゃんを納得させる呪文 ssh-keygen -R」
こんにちは、ぼのぼの(abibase.jp)です。
先日、VPSサーバーのOSを完全に初期化して、一から再構築する「人生2回目のサーバー再構築」を行いました。
その過程で、インフラエンジニアなら誰もが経験する「不気味なSSH接続エラー」に直面しました。原因を調べたところ、手元のPCである「Windowsちゃん」の、あまりにも一途なヤキモチが原因であることが判明しました。
今回は、彼女に過去の記憶をきれいに忘れてもらい、新しい接続へ進むための対処法を紹介します!
事件発生:生まれ変わったサーバーに接続しようとしたら、まさかの拒否
コントロールパネルからVPSのOSをクリーンインストールし、サーバーは新品同様の状態になりました。
「よし、新しくなったサーバーにSSHで接続しよう!」
そう意気込んでWindowsちゃんのターミナルからコマンドを打った瞬間、画面に赤い警告メッセージが表示されました。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle)!
Windowsちゃんの反応:
「ちょっと待って!昨日と違う識別情報(ホストキー)がある!知らない誰かが私の彼になりすましているかも!絶対に繋がせない!」
パスワードは正しいはずなのに、アクセスは拒否されました。昨日までは問題なく繋がっていたのに、なぜ…?
原因はWindowsちゃんが抱える一途な記憶
一瞬「サイバー攻撃か?」と警戒しましたが、実はこれはWindowsちゃんの安全機能(ヤキモチ)によるものです。
Windowsちゃんは、一度接続したサーバーのIPアドレス(今回なら160.251.252.54)と、そのサーバーの「固有の鍵(ホストキー)」をセットで、秘密のノート(known_hostsファイル)に大切に記録しています。
しかし、今回私はVPSのOSを初期化しました。
住所(IPアドレス)は160.251.252.54のままですが、サーバーの鍵は全く別のものに変わってしまいました。
これに気づいたWindowsちゃんは混乱し、
「住所は同じだけど、鍵が違う!これは偽物だ!騙されてはいけない!」
と、アクセスを厳しく拒否していたのです。
つまり、接続できなかったのはサーバーの問題ではなく、Windowsちゃんが「昔のサーバーの記憶」を大切に保持していたからでした。
解決策:Windowsちゃんに「過去の彼」を忘れさせるコマンド
原因が分かれば対処は簡単です。Windowsちゃんに「その住所の彼は新しくなったから、古い記憶は消して!」と教えればいいだけです。
隠しフォルダの奥にあるknown_hostsをメモ帳で開いて、過去の記録を手動で削除する必要はありません。
Windowsちゃんのターミナル(PowerShellやコマンドプロンプト)で、以下の「記憶消去コマンド」を一行入力するだけで解決します。
ssh-keygen -R 160.251.252.54
-Rオプションは「Remove(消去)」の意味で、指定したIPアドレスのホストキーだけをピンポイントで削除します。
コマンドを実行すると、# Host 160.251.252.54 found: line X(昔の記憶を消した)と表示されます。
これでWindowsちゃんの記憶はリセットされ、未練のない状態になりました。
この状態で再度 ssh root@160.251.252.54 と接続すると…
Are you sure you want to continue connecting (yes/no/[fingerprint])?
「はじめまして…本当に接続しても大丈夫?」と新鮮な状態で確認してくれます。ここで yes と入力すれば、新しいサーバーの鍵がWindowsちゃんのノートに登録され、問題なく接続が成立します!
まとめ:OS初期化時はssh-keygen -RでWindowsちゃんをサポートしよう!
インフラの実験や検証でサーバーのOSを再インストールしたり、同じIPアドレスを別の仮想マシンで使ったりすることはよくあります。
そのたびにWindowsちゃんは「前の彼と違う!」と鍵を閉めてしまいます。
「サーバー初期化後は、まずWindowsちゃんに -Rを!」
このスマートな対処法を覚えておけば、次回あの怖いエラー画面を見ても、「ああ、またWindowsちゃんがヤキモチを焼いているな」とすぐに解決できます。
生きたOSとネットワーク、そしてPCの可愛い仕様(?)に触れるからこそ分かる、実用的なトラブルシューティングの記録でした!








