对于第一次由脚本运行的ssh-copy-id回答“是”?


8

第一次ssh-copy-id会问

# ssh-copy-id -i .ssh/id_dsa.pub backup@example.com
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)? 

是否可以对此编写脚本,所以脚本只回答是?


Answers:


6

如果您ssh-copy-id不支持StrictHostKeyChecking选项,则可以编写一个脚本来执行以下操作:

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

8

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

ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no backup@example.com

或者,您可以执行以下操作:

echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub backup@example.com

编辑:由于这些解决方案似乎无法使用ssh-copy-id,因此您始终可以~/.ssh/config使用以下选项创建文件:

StrictHostKeyChecking no

这应该适用于所有SSH连接,无论是否通过脚本调用它们。


1
可悲的是没有,ssh-copy-id也没有-o
Sandra

很奇怪,它确实报告了发行时的切换ssh-copy-id -?
brain99 2012年

1
@sandra ssh-copy-id是一个脚本。您可以修改它以-o StrictHostKeyChecking=no在ssh_config文件中添加或禁用该参数。
ewwhite 2012年

另外,您无需指定键的位置ssh-copy-id servername
ewwhite 2012年

sudo sed -i.bak 's/ssh \$/ssh -o StrictHostKeyChecking=no \$/' $(which ssh-copy-id)
量子

0

尝试这个:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@example.com -y

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


没有-y选项
-ImranRazaKhan,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.