脚本第一次运行 ssh-copy-id 时回答“是”吗?

脚本第一次运行 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)? 

是否可以编写脚本,以便脚本只回答“是”?

答案1

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

  1. 针对目标服务器运行ssh-keyscan以获取公钥
  2. 将其附加到 known_hosts 文件
  3. 跑步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您想要的文件中,如果这是这里的唯一目的。

相关内容