【SSH接続エラー】VPSを初期化した後に繋がらなくなった時の特効薬 ssh-keygen -R

「【過去の男は忘れて】一途な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の可愛い仕様(?)に触れるからこそ分かる、実用的なトラブルシューティングの記録でした!

Related Posts

【Linuxネットワーク】netstat/ssコマンドでポート開放と不審な通信を特定するノウハウ

こんにちは。 Linuxサーバーで「ポートがバインドできない…

【Linuxトラブルシューティング】ディスク容量100%エラー!原因特定とログ削除の緊急対処法

こんにちは。 「突然データベースが停止した」「ファイルの保存…

コメントを残す

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

You Missed

【SSHセキュリティ強化】パスワード認証廃止と公開鍵認証・ポート変更の完全手順

【SSHセキュリティ強化】パスワード認証廃止と公開鍵認証・ポート変更の完全手順

【Linuxトラブルシューティング】ディスク容量100%エラー!原因特定とログ削除の緊急対処法

【Linuxトラブルシューティング】ディスク容量100%エラー!原因特定とログ削除の緊急対処法

【Docker Compose】複数ドメインを1台のVPSで運用するNginxリバースプロキシ設計パターン

【Docker Compose】複数ドメインを1台のVPSで運用するNginxリバースプロキシ設計パターン

【SSL/TLS対応】Certbot(Let’s Encrypt)でDocker上のWebサイトを完全HTTPS化する手順

【SSL/TLS対応】Certbot(Let’s Encrypt)でDocker上のWebサイトを完全HTTPS化する手順

【WordPress高速化】NginxキャッシュとOPcacheでレスポンス速度を爆速にする方法

【WordPress高速化】NginxキャッシュとOPcacheでレスポンス速度を爆速にする方法

【自動化】Bashシェルスクリプトで作る!デイリーDBバックアップ&Discord通知システム

【自動化】Bashシェルスクリプトで作る!デイリーDBバックアップ&Discord通知システム