はじめに
今回、本番環境にデプロイしようとEC2に色々インストールした結果環境が汚れたので、インスタンスを初期化して新たに作ろうと考えた。
コンソール画面のEC2にて、動いていたインスタンスを削除し、全く同じ設定で新たにインスタンスを作成した。
EC2にログインしようとした結果、エラーが出てすぐに解決できたがキータの記事が見当たらなかったため簡単に記載致します。
前提
- EC2
- ElasticIP(関連つけている)
起きたエラー
はじめに書いた通り、新たに作成したEC2にログインしようとした結果こんなエラーが出た。
$ ssh -i [pem名].pem ec2-user@[ElasticIP]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ED25519 key sent by the remote host is
SHA256:ハッシュ〜〜〜〜〜〜〜〜〜〜〜〜.
Please contact your system administrator.
Add correct host key in /Users/〜〜〜〜/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /Users/〜〜〜〜/.ssh/known_hosts:11
Host key for [ElasticIP] has changed and you have requested strict checking.
Host key verification failed.
本番環境でこういうのでると焦りますよね。
とりあえず、エラーを全部コピーして、翻訳。
警告: リモートホストの識別が変更されました!
誰かが何か悪さをしている可能性があります!
今まさに盗聴されているかもしれない(中間者攻撃)!
ホスト鍵が変更されただけかもしれません。
リモートホストから送信された ED25519 鍵のフィンガープリントは次のとおりです。
SHA256:ハッシュ〜〜〜〜〜〜〜〜〜〜〜〜.
システム管理者にお問い合わせください。
正しいホストキーを/Users/~~~~~~/.ssh/known_hostsに追加すると、このメッセージは消えます。
/Users/~~~~~~/.ssh/known_hosts:11にある問題のあるED25519 key
[ElasticIP] のホスト鍵が変更されたので、厳密なチェックを要求しています。
ホスト鍵の検証に失敗しました。
以前のホストキーと違うため、エラーが出ている。
/Users/~~~~~~/.ssh/known_hosts
ここに。known_hostsファイルから[ElasticIP]に関する情報を取り除けば、以前のホスト鍵も削除される。
※[ElasticIP]設定していない方は、前に削除したEC2のパブリック IPv4 アドレスが記載されています。
解決方法
ssh-keygenコマンドを使用します。
ssh-keygenコマンドとは、秘密鍵と公開鍵の鍵ペアを作成できるコマンドです。
ssh-keygenコマンドにオプション**-R**をつけると、
指定したホストに属する鍵を全て取り除く事ができます。
そちらを使用いたします。
$ ssh-keygen -R [ElasticIP]
# Host [ElasticIP] found: line 11
/Users/~~~~~/.ssh/known_hosts updated.
Original contents retained as /Users/~~~~~~/.ssh/known_hosts.old
上記コマンドを打った後、
$ ssh -i [pem名].pem ec2-user@[ElasticIP]
The authenticity of host '[ElasticIP] ([ElasticIP])' can't be established.
ED25519 key fingerprint is SHA256:ハッシュ〜〜〜〜〜〜〜.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
$ yes
yesと打てばログインできます。
以上。