仮想マシンを何回も作りなおしていろんなホストにSSH接続していくと known_hosts
にフィンガープリントのゴミが溜まっていくのですが、仮想マシンを全く同じ構成で作りなおして、同じIPで同じポートに接続しようとすると
localhost:~ noguchiwataru$ ssh root@192.168.0.114 -i ~/.ssh/openstack-default.key
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 RSA key sent by the remote host is
0b:1d:3b:5e:b8:ba:ad:07:b5:71:7a:16:32:91:8d:2d.
Please contact your system administrator.
Add correct host key in /Users/noguchiwataru/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/noguchiwataru/.ssh/known_hosts:14
RSA host key for 192.168.0.114 has changed and you have requested strict checking.
Host key verification failed.
こんな感じで接続を拒否されます。
なんだか大げさなメッセージが出て来ましたが、何もした覚えがないのに本番サイトでこれが出たらなりすましの可能性があるので 絶対接続しないほうがいいです。
今回のケースは実験目的なので特に問題はなくて、 known_hosts
に記録された定義を削除して解決したいと思います。
vimで開いて消すのもいいのですが、ファイルの内容が長くて探すの大変なのでsed
で消したいと思います。
sed -i -e '/0.114/d' ~/.ssh/known_hosts
d
でマッチする行を削除するコマンドになります。
これで消えました。便利ですねー。
localhost:~ noguchiwataru$ ssh root@192.168.0.114 -i ~/.ssh/openstack-default.key
The authenticity of host '192.168.0.114 (192.168.0.114)' can't be established.
RSA key fingerprint is 0b:1d:3b:5e:b8:ba:ad:07:b5:71:7a:16:32:91:8d:2d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.114' (RSA) to the list of known hosts.
wnoguchi Customized AMI Linux Image
Base: CentOS 6.4 x64
[root@sample ~]#
接続できた。