第一次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)?
是否可以编写脚本,以便脚本只回答“是”?
答案1
如果您ssh-copy-id
不支持 StrictHostKeyChecking 选项,您可以编写一个脚本来执行以下操作:
- 针对目标服务器运行
ssh-keyscan
以获取公钥 - 将其附加到 known_hosts 文件
- 跑步
ssh-copy-id
答案2
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]
编辑:由于这些解决方案似乎不适用于ssh-copy-id
,您可以随时创建一个~/.ssh/config
包含以下选项的文件:
StrictHostKeyChecking no
这应该适用于所有 SSH 连接,无论它们是否通过脚本调用。
答案3
这是十年前的问题,但仍然是一个相关的问题,并且没有一个实用的答案:
ssh-copy-id -i .ssh/id_dsa.pub [email protected] <<< yes
您仍然需要输入您的密码。
以防别人偶然发现这篇旧帖子。
答案4
尝试这个:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] -y
它不会将主机密钥添加到known_hosts文件中,但允许您将公钥复制(或附加)到authorized_keys
您想要的文件中,如果这是这里的唯一目的。