ホストからターミナルでSSH接続時に ”WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (以下略)”なるメッセージが出た場合についてのメモを記します。

 

1.ある日の出来事

ある日、

一連のSSHコマンド投入にてホスト(サーバ)へのアクセスを試みたところ、

 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (以下略)

なるメッセージが表示されて接続できなくなってこまっているので何とかして欲しい。

という報告(相談)を受けました。

このメッセージは、

ホスト側のコンピュータ(接続先)が入れ替わったことを検出

した場合に出る警告文です。

「前に接続した接続先となにか違うよ! 接続先のふりをしているニセモノではないか確認しなさい!」

とでもいったところでしょうか。

仮に「ニセモノ」だった場合、本来の接続先への接続情報を盗み取ったりされる危険性が有るため警告が出ているわけですが、LANカードの交換とか、場合によってはマシンそのものの入れ替えとか原因はいろいろ考えられます。

というわけなので、管理者などの事情のわかる人に確認して接続先には問題が無いかを確認しましょう。

問題ないことを無事確認できたなら、このあと記載する手順で過去の接続情報をリセットして新たな接続先情報を取得しなおしましょう。

接続先に問題があった場合には無理に接続することなくシステム管理者にそのあとのことはお任せしてしまいましょう。(機密情報の漏洩などがないことを祈りつつ...)


2.対処法(接続先情報のリセット)

「リセット」といっても、過去の接続情報を削除するだけなので、

(1)自身のホームディレクトリ上にある(ハズです)「.ssh」ディレクトリ上の「known_hosts」ファイルを開く
(2)接続先のIPアドレスで検索を実施する
(3)HITした「先頭が該当のIPアドレスで始まっている1行」を削除する
(4)編集したファイルを保存(上書き)する

の手順となります。

なぁに、失敗したところで動かなくなるようなことはないので安心してやっちゃいましょう。(セキュリティ上の観点からは失敗しないほうが望ましいですが。)
どうしても心配ならシステム管理者にやってもらいましょう。

無事成功していれば、このあとSSH接続したときには最初に接続したときと同じ手順で接続操作することで無事ログインできるでしょう。

 

追記)

OpenSSH 4.0以降で、ssh_config の HashKnownHosts が有効になっているとファイル内の記述はハッシュ化されて保存されているので手作業での対応は(まず)出来ません。

そんな場合には、以下のような手順で対処します。

1.ssh-keygen -F <IPアドレス> コマンドにて登録されていることを確認。 ※IPアドレス前後のの"<"と">"は実際のコマンド投入時には不要。
2.ssh-keygen -R <IPアドレス> コマンドにて登録を削除。 ※IPアドレス前後のの"<"と">"は実際のコマンド投入時には不要。

以上です。