我正在尝试制作一个自动将文件从一台服务器复制到多台服务器的系统。作为其中的一部分,我使用rsync并安装SSH密钥,它可以正常工作。
我的问题是,当它第一次尝试连接到新服务器时,它会要求确认。有没有办法自动接受?
示例命令/输出:
rsync -v -e ssh * root@someip:/data/
The authenticity of host 'someip (someip)' can't be established.
RSA key fingerprint is somerandomrsakey.
Are you sure you want to continue connecting (yes/no)? yes
答案 0 :(得分:52)
您可以事先将此主机密钥添加到known_hosts,如下所示:
ssh-keyscan $someip >> ~/.ssh/known_hosts
答案 1 :(得分:33)
如果他们真的是新主机,并且您无法事先将密钥添加到known_hosts
(请参阅York.Sar的回答),那么您可以使用此选项:
-e“ssh -o StrictHostKeyChecking = no”
答案 2 :(得分:7)
我知道这是3年前被问到的,但这是我的谷歌搜索的顶部,我无法在Vagrant脚本中找到这些解决方案中的任何一个,以便我正常工作。所以我想在这里找到我找到somewhere else的方法。
那里的解决方案讨论了使用以下代码块更新~/.ssh/config
或/etc/ssh/ssh_config
文件。
禁用特定主机(例如,remote_host.com)的主机密钥检查:
Host remote_host.com
StrictHostKeyChecking no
关闭所有连接到的主机的主机密钥检查:
Host *
StrictHostKeyChecking no
要避免主机密钥验证,请不要使用192.168.1。* subnet:
的known_hosts文件Host 192.168.0.*
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
我希望这可以帮助遇到此问题的其他人。