昨天把德州那台VPS的系统重装了一下,然后再SSH连接的时候就收到一个大大的警告消息
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 8a:c7:45:20:5a:b5:6d:f0:1b:7d:07:59:9d:fd:f8:be. Please contact your system administrator. Add correct host key in /home/rek/.ssh/known_hosts to get rid of this message. Offending key in /home/rek/.ssh/known_hosts:33 RSA host key for rek.tw has changed and you have requested strict checking. Host key verification failed.
这自然是由于重装之后SSH服务器的密钥改变导致的,上网搜了一下,发现有无数帖子介绍用移除~/.ssh/known_hosts的方法解决。但是这种方法会失去所有的本地密钥缓存,以后我要连接其它几十台不同的服务器时都会蹦出密钥信息提示。这样一来麻烦,二来也不怎么安全,比如我的域名被劫持就是通过SSH密钥安全警告发现的,如果没有警告,可能我已经泄漏了主机密码。
查了一下ssh相关的命令,发现ssh-keygen有个-R选项可以删除单个主机的密钥缓存,于是试用了一下。
rek@rek-desktop:~$ ssh-keygen -R rek.tw /home/rek/.ssh/known_hosts updated. Original contents retained as /home/rek/.ssh/known_hosts.old
再次尝试ssh连接服务器,就不会看到上面那个巨大的警告了,而是提示是否将rek.tw的密钥保存到known_hosts中。
2 条评论
VPS,高端产品了。
http://j.mp/eIZNIv
值得参考啊