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

2019年11月27日 13:34
    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接続を試みたら、ようやく接続できるようになりました。

    関連記事

    関連記事はありません。