(Mac)AWS上に作成したEC2にSSH接続すると「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」と表示されて繋がらない

・SSH接続しようとしたらWARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!と出てしまう
・原因と対処法を知りたい
ターミナルでAWS上に作成したEC2にsshアクセスしようとすると下記のようなエラーが出て繋げませんでした。
今回の記事ではこちらの原因と対処法を紹介します。

記事の目次
原因
1つの公開鍵を使用してSSH接続したサーバーに対して、IPアドレスが変更になったから。
SSHでは下記のような認証を行っております。
SSHでは初回接続時に接続先ホストの公開鍵を保存しておき、次回接続時にホスト鍵を比較して前回と同じホストに接続したかを確認するような仕組みになっています。
https://qiita.com/hnw/items/0eeee62ce403b8d6a23c
つまり、初回接続で使用したSSH認証とホストを明記し、次の接続時に前回接続時の鍵とホストを比較しているようです。
この時、前回使用した鍵に対してホスト(IPアドレス)が変わっているとエラーが出るようですね。
私の場合は、前回使用したElastic IPを使い回していたために起きた事象でした。
対処法
新しくElastc IPを作成して関連付けるでも良いですが、今回はElastic IPに割り当てられている認証情報を削除し、新たに認証し直方法で回避しようと思います。
ちなみに、ElasticIPは下記の条件が満たされている限り、追加料金を払いません。
Elastic IP アドレスが EC2 インスタンスに関連付けられている。
https://repost.aws/ja/knowledge-center/elastic-ip-charges
Elastic IP アドレスに関連付けられているインスタンスが実行中である。
インスタンスには、1 つの Elastic IP アドレスしかアタッチされていない。
Elastic IP アドレスが、アタッチされているネットワークインターフェイスに関連付けられている。詳細については、ネットワークインターフェイスをご参照ください。
対処法
対象のIPアドレスに対して認証情報を確認
まず初めに、ターミナルより下記のコマンドを実行して、認証情報の確認を行います。
今回の場合、35.xxx.xxx.xxxで接続しようとして怒られたので、35.xxx.xxx.xxxを確認します。
cat ~/.ssh/known_hosts

対象のIPアドレスに記載されている認証情報を削除
該当箇所の認証情報を削除します。下記コマンドviエディタが開くので削除してください。
削除したら再びsshで再接続します。

yesと入力

無事接続できました。
参考になれば幸いです。
- タグ:
- SSH