回答“是”ssh-copy-id首次运行脚本?

第一次ssh-copy-id它会问

 # ssh-copy-id -i .ssh/id_dsa.pub [email protected] The authenticity of host 'example.com (xxx.xxx.xxx.xxx)' can't be established. RSA key fingerprint is 39:fb:5e:70:30:33:2b:18:17:e9:4f:2f:91:b5:d2:21. Are you sure you want to continue connecting (yes/no)? 

是否可以编写脚本,所以脚本会回答是的?

如果你的ssh-copy-id不支持StrictHostKeyChecking选项,你可以编写一个脚本来:

  1. 对目标服务器运行ssh-keyscan以获取公钥
  2. 追加到known_hosts文件
  3. 运行ssh-copy-id

SSH可以自动将任何主机密钥添加到可信主机文件中:

 ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no [email protected] 

作为替代,您可以执行以下操作:

 echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub [email protected] 

编辑 :因为它出现这些解决scheme不能与ssh-copy-id ,所以你可以使用下面的选项来创build一个~/.ssh/config文件:

 StrictHostKeyChecking no 

这应该适用于所有的SSH连接,不pipe是否通过脚本调用。

尝试这个:

 ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] -y 

它不会将主机密钥添加到known_hosts文件,而是允许您将公钥复制(或附加)到您想要的authorized_keys ,如果这是唯一目的。