SSH接続で発生したWARNING の原因と対処法!REMOTE HOST IDENTIFICATION HAS CHANGED!

2017年11月7日

60爺が、sshで接続を行おうとしたところ、以下のエラーが発生しました!

@の中身は、「警告:リモートホストの識別が変更されました!」と言っています。

エラーメッセージを見ると、このメッセージを取り除くには、/home/mizutan/.ssh/known_hostsに正しいホスト鍵を追加してくださいと言っています。

mizutan@raspbian:~/.ssh $ ssh pi@192.168.254.213
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
c9:9e:64:ee:93:b0:f2:86:bf:d5:63:ce:1f:21:09:4c.
Please contact your system administrator.
Add correct host key in /home/mizutan/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/mizutan/.ssh/known_hosts:3
remove with: ssh-keygen -f "/home/mizutan/.ssh/known_hosts" -R 192.168.254.213
ECDSA host key for 192.168.254.213 has changed and you have requested strict checking.
Host key verification failed.
スポンサーリンク

原因と対処法

原因

これは、ssh接続先サーバがOSを再インストールした時や、ssh接続先サーバが dhcp によりアドレスが変わる時及び接続先サーバがホスト名を付け替えた時などに発生するものです。

~/.ssh/known_hosts に記録されている接続先のサーバ情報と、移行後のサーバの情報とが異なっているために出ている警告です。

対処方法なんですが、簡単なのは、.sshフォルダの中の known_hosts を削除してしまう方法です。


対処法

下記のようにファイル一覧を出します。

mizutan@raspbian:~ $ cd .ssh
mizutan@raspbian:~/.ssh $ ls -l
合計 8
-rw-r--r-- 1 mizutan mizutan 1554 7月 20 09:03 known_hosts
-rw-r--r-- 1 mizutan mizutan 666 5月 26 10:34 known_hosts.old

いきなり削除してもよいですが、何かあった時のためのバックアップファイルにするために名称変更します。

known_hosts ⇒ known_hosts_old20170804

名称変更は、mv コマンドですね。

mizutan@raspbian:~/.ssh $ sudo mv known_hosts known_hosts_old20170804
mizutan@raspbian:~/.ssh $ ls -l
合計 8
-rw-r--r-- 1 mizutan mizutan 666 5月 26 10:34 known_hosts.old
-rw-r--r-- 1 mizutan mizutan 1554 7月 20 09:03 known_hosts_old20170804

この後、ssh をやり直すと、known hosts. に追加していいかと聞かれますので yes と答えると、今度は、エラーは発生せず、問題なく繋がります。

mizutan@raspbian:~/.ssh $ ssh pi@192.168.254.213
The authenticity of host '192.168.254.213 (192.168.254.213)' can't be established.
ECDSA key fingerprint is c9:9e:64:ee:93:b0:f2:86:bf:d5:63:ce:1f:21:09:4c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.254.213' (ECDSA) to the list of known hosts.
pi@192.168.254.213's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Aug 4 13:15:08 2017 from www.mizutan.com
pi@raspberrypi:~ $

その後、先ほどの .ssh ディレクトリを見ると、known_hosts が作成されているのがわかります。

ただ、この後、別のアドレスに ssh接続を行うたびに、いちいち上記の質問が来ますが、最初だけなので、ご勘弁ください。

もう一つの解決方法

さて、上記の方法 known_hosts を削除しても状況が変わらない場合の対処法があります。

60爺は、2022/6/19 に windows10 から ubuntu に対して SCP を実行しようとした際、この状況にぶち当たりました。

C:\Users\yu195>scp E:1_FGH/yuichi.txt mizutan@192.168.254.121:/home/samba/share
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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:wZKAYkAalCpTU5+FGDjt8Xf7Y1DtmYbnnHm/dYBCcJw.
Please contact your system administrator.
Add correct host key in C:\\Users\\yu195/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\yu195/.ssh/known_hosts:4
ECDSA host key for 192.168.254.121 has changed and you have requested strict checking.
Host key verification failed.
lost connection

そして、2.のやり方即ち known hosts を削除して同一コマンドを打ったんですが状況は全く変わりません!!

そこで色々調べたんですが、次のコマンドで対応できました。

ssh-keygen -R 192.168.xxx.yyy

※192.168.xxx.yyy はサーバーのIPアドレスです。

このコマンドをたたくと、次のメッセージが表示されます。

# Host 192.168.254.121 found: line 4
C:\Users\yu195/.ssh/known_hosts updated.
Original contents retained as C:\Users\yu195/.ssh/known_hosts.old

この後、先程失敗した SCPコマンドを実行してみると以下のように問題なく狙いの操作が出来ました。

C:\Users\yu195>scp E:1_FGH/yuichi.txt mizutan@192.168.254.121:/home/mizutan/
The authenticity of host '192.168.254.121 (192.168.254.121)' can't be established.
ECDSA key fingerprint is SHA256:wZKAYkAalCpTU5+FGDjt8Xf7Y1DtmYbnnHm/dYBCcJw.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Warning: Permanently added '192.168.254.121' (ECDSA) to the list of known hosts.
mizutan@192.168.254.121's password:
yuichi.txt 100% 4996 382.1KB/s 00:00

参考資料によると、「こちらの方が素直だと思う」と書いてありますね!

参考
ssh接続をする際に「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」と出てつながらない

スポンサーリンク
この記事を書いた人

60爺

60路を越え、RaspberryPi と出会い、その関係でブログ開設(2017/2~)となりました。始めてみると、コツコツやるのが性に合ってしまい、漢字の記事から家の補修・将棋・windows10関係・別名・言い方などジャンルを拡大して今に至ってます。まだまだ、元気なので新たな話題を見つけて皆様に提供できればと思っています。「プロフィールはこちら

TIPS

Posted by 60爺