ConoHa VPSにRails実行環境を構築している際、以前は出ていなかったエラーが出るようになっていて、なんでだろうと思っていたら選択するOSが以前と違っていたからでした。
10月初旬頃に構築したときは、ConoHa VPSで対応しているCentOSのバージョンは7.7が最新だったはずなんですが、11月下旬頃には最新が8.0になっていました。
OSを選択するときに何も考えずにCentOSの最新バージョンを選択してしまっていたので、環境構築で以前は出ていなかったエラーが出るようになっていたんですね。
本当は最新バージョンを使うのが望ましいのだと思いますが、構築実績のあるバージョンのほうが余計な手間が発生しなくてスムーズに進みます。
なので、ConoHa VPSの管理ページからサーバー再構築を行いました。
10月初旬頃に構築したときは、ConoHa VPSで対応しているCentOSのバージョンは7.7が最新だったはずなんですが、11月下旬頃には最新が8.0になっていました。
OSを選択するときに何も考えずにCentOSの最新バージョンを選択してしまっていたので、環境構築で以前は出ていなかったエラーが出るようになっていたんですね。
本当は最新バージョンを使うのが望ましいのだと思いますが、構築実績のあるバージョンのほうが余計な手間が発生しなくてスムーズに進みます。
なので、ConoHa VPSの管理ページからサーバー再構築を行いました。
事象
前置きが長くなりましたがここからが本題です。
サーバーの再構築を行ったので、また最初から鍵ファイルを使ってSSH接続しようとしました。
サーバーの再構築を行ったので、また最初から鍵ファイルを使って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)はサーバー再構築の際に新しく作り直しています。
今回使用した鍵ファイル(key-vps-name.pem)はサーバー再構築の際に新しく作り直しています。
対処
エラーメッセージで調べると、以下のコマンドで以前の接続情報を消せばいいみたいです。
このコマンドは~/.ssh/known_hostsファイルに書かれている該当の接続情報を削除してくれます。
このコマンドは~/.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接続を試みたら、ようやく接続できるようになりました。
ファイルを見てみるとたしかにxxx.xxx.xxx.xxxから始まる接続情報らしき行がありました(エラーメッセージに行数まで書いてありますね)。
該当行を削除してもう一度SSH接続を試みたら、ようやく接続できるようになりました。