【LinuxOS】sshアクセス時に「Host key verification failed」でエラーが出た時の対応方法

LinuxOS、またはMacOSなどでサーバーを構築し、SSHアクセスした場合エラーが発生し、アクセスできない場合があります。

「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」

このエラーが発生した場合の対応方法をまとめました。

SSHアクセスで「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」エラーが発生した場合の解消方法

SSHでアクセスすると以下のようなエラーが発生することがあります。
今回はlocalhostに対してsshを実施したところ、以下のエラーが吐かれました。

~ $ ssh -p 2222 root@localhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:f0zUZbHb3g/6ByR7zteFXSKeFSpFvBEep9XMOfFuqqs.
Please contact your system administrator.
Add correct host key in /Users/xxxxxx/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/xxxxxx/.ssh/known_hosts:11
ECDSA host key for [localhost]:2222 has changed and you have requested strict checking.
Host key verification failed.

これはSSHで「鍵」が合わないことで発生するエラーとなります。

問題の原因はリモート側のホストIDが変更されたことで「鍵」が合わなくなった

この問題の原因はリモートホスト側の「鍵」のIDが更新されたことにより、SSHアクセスができなくなったことです。

例えば、同じIPアドレスのホストで新規にサーバーを立てたり、SSHが更新されると、クライアント側では以前までの「鍵」を持っていることにより、暗号キーが合わないことでアクセス不可となります。

SSHアクセス不可の解決方法は古い「鍵」を削除すること

それでは、どのようにしてSSHアクセスをするかですが、上記エラーの11行目、12行目にあるように以下のフォルダの中にある古い「鍵」を削除するだけとなります。

Add correct host key in /Users/xxxxxx/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/xxxxxx/.ssh/known_hosts:11

今回、SSHアクセスをする際に必要となる「鍵」ですが、古い鍵が以下のフォルダに残っているので、以下でエディッタを開き、対象の鍵「localhost」を削除します。
上記エラーで、対象のIPアドレスが書かれている場合はそのIPアドレスに紐づいた鍵を削除しましょう。

~ $ vi /Users/xxxxxx/.ssh/known_hosts 
[localhost]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF6W3bWKstYbIWmn/nAQ2MOVCVyIqatm6+LUdOmjqQYpxSwX5eZSLhReJhe9dWAwY59fdP4zNo4G0H/xixp1GGo=

削除コマンドは「dd」を押下するだけで削除されます。
削除後は「:wq」で保存して抜けます。

削除後再度SSHアクセスし、正常にログインができたことが確認できます。

~ $ ssh -p 2222 root@localhost
root@localhost's password: 
Last login: Sun Apr 19 06:33:13 2020 from 172.17.0.1
[root@93f3d6ddfadd ~]# 

SSHでログインエラーが発生した時は参考にしてください。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!