SSH接続時に「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が出る場合の対処法

2022年6月19日 16:22
ConoHa VPSにRails実行環境を構築している際、以前は出ていなかったエラーが出るようになっていて、なんでだろうと思っていたら選択するOSが以前と違っていたからでした。
10月初旬頃に構築したときは、ConoHa VPSで対応しているCentOSのバージョンは7.7が最新だったはずなんですが、11月下旬頃には最新が8.0になっていました。
OSを選択するときに何も考えずにCentOSの最新バージョンを選択してしまっていたので、環境構築で以前は出ていなかったエラーが出るようになっていたんですね。

本当は最新バージョンを使うのが望ましいのだと思いますが、構築実績のあるバージョンのほうが余計な手間が発生しなくてスムーズに進みます。
なので、ConoHa VPSの管理ページからサーバー再構築を行いました。

事象

前置きが長くなりましたがここからが本題です。
サーバーの再構築を行ったので、また最初から鍵ファイルを使ってSSH接続しようとしました。
$ sudo ssh -i key-vps.pem root@xxx.xxx.xxx.xxx
すると、以下のエラーが表示されました。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:8kzF/ZLgjQNwd1AyKk/hiNaxbbiTHyKNE2lbcziqh0A.
Please contact your system administrator.
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:2
ECDSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.

原因

エラー内容を要約すると、今回の接続情報が以前の接続情報と違っているからのようです。
今回使用した鍵ファイル(key-vps-name.pem)はサーバー再構築の際に新しく作り直しています。

対処

エラーメッセージで調べると、以下のコマンドで以前の接続情報を消せばいいみたいです。
このコマンドは~/.ssh/known_hostsファイルに書かれている該当の接続情報を削除してくれます。
$ ssh-keygen -R xxx.xxx.xxx.xxx
しかし、上記コマンドを実行したあとも同じエラーが出続けます。
エラーメッセージをもう一度よく読んでみます。
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:2
よくわかりませんが、別のknown_hostsファイルがあるようで、そっちのファイルでエラーが発生しているようです。
ファイルを見てみるとたしかにxxx.xxx.xxx.xxxから始まる接続情報らしき行がありました(エラーメッセージに行数まで書いてありますね)。
該当行を削除してもう一度SSH接続を試みたら、ようやく接続できるようになりました。

関連記事

SSH設定済みのリモートサーバーに別のPCからSSH接続する方法
# はじめに SSHの公開鍵/秘密鍵の生成やSSHのポート番号など既に設定済みのリモートサーバーに、今まで使っていたPC以外から接続する方法について記載します。なお、今回はConoHa VPSで作成したリモートサーバー(CentOS Linux [...]
2022年5月8日 11:07
ConoHa VPSのハードウェア障害によるSSH接続不可・Webサイトアクセス不可の対処方法
# はじめに 6月2日夜間にConoHa VPSにて障害が発生していました。 <img data-src="https://i.imgur.com/SBcK4aA.png" class="lazyload effect-fade"> [...]
2020年6月3日 9:31
MacからサーバーにSSH接続する方法
(初心者向け)vpsを契約して、capistrano3でRailsアプリをデプロイするまで [その1 サーバー設定編] こちらの記事の「2. SSHの設定」を行っても以下のコマンドでSSH接続できなかったので、MacでSSH接続する方法を調べまし [...]
2019年11月26日 22:15