ssh登陸提示"Host key verification failed."的解決方法
1、在某些情況下,如同個IP地址,不同端口連到不同linux機子上時,可能有此提示
2、報錯信息如下:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
23:00:20:83:de:02:95:f1:e3:34:be:57:3f:cf:2c:e7.
Please contact your system administrator.
Add correct host key in /home/xahria/.ssh/known_hosts to get rid of this message.
Offending key in /home/xahria/.ssh/known_hosts:8
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.
3、用OpenSSH的人都知ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會核對公鑰。如果公鑰不同,OpenSSH會發出警告,避免你受到DNS Hijack之類的攻擊。
4、在.ssh/config(或者/etc/ssh/ssh_config)中的配置項StrictHostKeyChecking:
默認是ask:如果連接和key不匹配,給出提示,並拒絕登錄,默認是被注釋掉的。
yes:如果連接與key不匹配,就拒絕連接,不會提示。
no:如果連接的key在本地不存在,那麼就自動添加到文件中(默認是known_hosts),並且給出一個警告,可以連接成功。
5、為了防止出現警告提示,且解決同個IP不同端口連接,可選擇性地降低安全性,如下配置:
vi /etc/ssh/ssh_config
StrictHostKeyChecking no
UserKnownHostsFile /dev/null #將knownhostfile設為/dev/null,就不保存在known_hosts中了