从一台Linux主机登录另一台Linux主机时,提示:

#ssh 192.168.0.68

Received disconnect from 192.168.0.68: 2: Too many authentication failures for cheng

看192.168.0.68的/var/log/secure日志时,提示公钥失败。

Jan 19 11:17:34 web sshd[30724]: Failed publickey for root from 192.168.0.239 port 49210 ssh2

可是明明我们用的是用户名验证啊!怎么会用公钥验证呢?不科学啊!!


解决方法:

 亲,你这台主机肯定有.ssh目录,而且有一个id_rsa与id_rsa/pub文件。把它删除了吧。就好了。

rm -rf id_rsa*


这种情况只有在双方主机对生成过公钥的时候才会出现。


估计是远程主机认为要登录的主机也有公钥文件,但是这个公钥文件不在对方的authorized_keys中,所以它以为是不信任的主机,拒绝登录 ,公钥失败。想用密码登录的时候,它也认为要用公钥登录。所以,另一种解决方法时,把要登录的主机公钥加入远程主机信任即可。