ssh连接时提示“The authenticity of host xx can’t be established”

年初时写了个系统备份的脚本,主要使用rsync工具见(rsync远程同步备份数据(ssh方式)),但前阵子我做备份系统恢复演习时才发现,我的rsync已经很久都没有sync成功了。我本来是采用密钥交换的方式来完成ssh中的验证,但可能由于主机的Key有变化,每次ssh连接(或rsync)时就会有提示:The authenticity of host *** can’t be established ,需要输出一个“yes”的交互。
对于这个提示,我的脚本中一开始没有预知,所以没有做判断和处理(用expect也是容易处理的),所以我决定去掉这样的提示(关于宿主机的检查)。
1. 使用ssh连接远程主机时加上“-o StrictHostKeyChecking=no”的选项,如下:

2. 一个彻底去掉这个提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:

修改好配置后,重新启动sshd服务即可,命令为:/etc/init.d/sshd restart (或 service sshd restart )
当然,这是内网中非常信任的服务器之间的ssh连接,所以不考虑安全问题,就直接去掉了主机密钥(host key)的检查。

ssh中遇到的“Host key verification failed.”问题,也是和“StrictHostKeyChecking”配置有关,很久前就总结过了,见:
ssh中“Host key verification failed.”的解决方案

另外,不需要用户名和密码,而是使用ssh key验证实现Linux系统间的ssh免登陆,可以参考我曾经的博文:
ssh配置及实现ssh免登陆Linux

master

Stay hungry, stay foolish.

发表评论

电子邮件地址不会被公开。 必填项已用*标注