Hatena::ブログ(Diary)

PRiMENON:DiARY

2014-11-01
記事中にある、http://www.kuroduction.com/ ドメインは http://www.primenon.com/ ドメインで運用しています。
2013-02-01
ブログを移転しました。このブログは更新しません。

2009-04-18

[]ssh 接続しようとすると「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が表示されるときは

CD で新規インストールした Ubuntu 8.04.2 LTS Server に WindowsTeraTerm から ssh で接続しようと試みたら、以下のエラーメッセージが表示されました。

勿論、この話題に登場する Ubuntu とは関係の無い Ubuntu 8.04.1 Desktop から ssh 接続しても同じメッセージが表示されました。

$ ssh -l USERNAME HOSTNAME
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP.
Please contact your system administrator.
Add correct host key in /home/USERNAME/.ssh/known_hosts to get rid of this message.
Offending key in /home/USERNAME/.ssh/known_hosts:1
RSA host key for HOSTNAME has changed and you have requested strict checking.
Host key verification failed.

ググって見ると、まさにクリティカルヒットの解決方法を発見。

新規インストール前の ssh 接続のホスト情報を Windows 側のクライアントが保存していて、新規インストールしたことでホスト情報が変わってしまったのに接続しようと試みたため、Windwos 側のクライアントが保存する新規インストール前のホスト情報と、新規インストール後のホスト情報が一致しないため、「おいっ!相手のホストが以前接続した時と違うぞ!やっべーみたいだから接続中止中止!」と警告しているようです。私が新規インストールしたので安全ですが、もしかすると悪意のある人間がホストを機械ごと勝手に置き換えて ssh の情報を盗み取られる可能性があるので、遠隔地との接続でこのようなメッセージが表示されたら確認しておきましょう。

これを解決するには、ssh を試みるクライアント側が保存するホスト情報をリセットします。ssh-keygen コマンドを ssh 接続するユーザーで実行します。なお、ホスト情報を記録しているファイルは、/home/USERNAME/.ssh/known_hosts にあります(ファイルの中身が暗号化されていることがあります)。

$ ssh-keygen -F HOSTNAME
# Host HOSTNAME found: line 1 type RSA
|1|ASDfghJKL... = ssh-rsa asdFGHjkl...

ssh-keygen の -R オプションで該当ホストの情報をリセットします。

$ ssh-keygen -R HOSTNAME
/home/USERNAME/.ssh/known_hosts updated.
Original contents retained as /home/USERNAME/.ssh/known_hosts.old

万が一のため、バックアップファイルが known_hosts.old として保存されています。

もう一度、ssh で接続を試みます。

$ ssh -l USERNAME HOSTNAME
The authenticity of host 'HOSTNAME (192.168.1.1)' can't be established.
RSA key fingerprint is AA:BB:CC:DD:EE:FF:GG:HH:II:JJ:KK:LL:MM:NN:OO:PP.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'HOSTNAME' (RSA) to the list of known hosts.
Warning: the RSA host key for 'HOSTNAME' differs from the key for the IP address '192.168.1.1'
Offending key for IP in /home/USERNAME/.ssh/known_hosts:1
Are you sure you want to continue connecting (yes/no)? yes
USERNAME@HOSTNAME's password: 
Linux HOSTNAME 2.6.XX-XX-server #1 SMP Wed Apr 1 10:00:00 UTC 2009 x86_64

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
Last login: Sat Apr 18 19:57:02 2009
USERNAME@HOSTNAME:~$

ちゃんと ssh でホストにログインできました。

momdomomdo 2009/04/19 10:37 rm ~/.ssh/known_hostsでしのいでます。

PRiMENONPRiMENON 2009/04/20 21:57 >momdo さん

お久しぶりです。
ファイルを削除してしまってもいいんですねー。そっちの方が手間がかからない気がしてきました。

rm ~/.ssh/known_hostsrm ~/.ssh/known_hosts 2011/02/28 17:45 rm ~/.ssh/known_hosts

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

リンク元