始めに
ホストの再インストールなどを行った際にフィンガープリントが違う、っていうことで怒られますね。
$ ssh example.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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:lWfMOia5da_KOIUHkMKWF9KDOIJOO315349LKOm91BA.
Please contact your system administrator.
Add correct host key in /Users/yousan/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/yousan/.ssh/known_hosts:50
ECDSA host key for example.com has changed and you have requested strict checking.
Host key verification failed.
ホストが増えてくるといちいち行を探して削除するのが大変で、ファイルごと消したりしていました。
下記のようにすると該当行だけ消すことが出来ます。
$ sed -i.bak s/^exmaple\.com.*/d/ $HOME/.ssh/known_hosts
若しくはシェルクスリプトを書いておいて
# !/bin/sh
if [ -n "$1" ]
then
sed -i.bak s/^$1.*/d/ $HOME/.ssh/known_hosts
fi
$ ~/sh/delkh example.com
とすると該当の行を消してくれます。
元はFreeBSD用に作成したもので、現在はMac OS X (darwin)で使えています。sed -i
の所がもしかするとOSによってはうまくいかないかもしれません。
今回の問題
今回はさくらのクラウドでKUSANAGIを使っていたところ、SSHのキーがパブリッククラウド全体で同じものを使っていた、ということで再生成の通知が来ました。
さくらのクラウドにて提供しているパブリック・アーカイブの一部のOSにおいて、本来サーバごとに固有であるはずのSSHホスト鍵が同一になっているものがあることが判明いたしました。
SSHホスト鍵を再生成すると、クライアントからログインする際に「SSHホスト鍵が一致しない」という警告/エラーが発生することがあります。
フィンガープリントを確認いただき、SSHホスト鍵を更新していただきますようお願いいたします。
http://cloud-news.sakura.ad.jp/2016/04/27/ssh-host-key/
この鍵を再生成した際にフィンガープリントが違って怒られました。
以上です。