将远程主机添加到known_hosts文件而无需提示

将远程主机添加到known_hosts文件而无需提示

我编写了一些脚本,希望known_hosts在不进行任何交互的情况下将远程主机添加到我的文件中。我可以运行类似这样的命令,它将远程主机密钥添加到我的已知主机,但随后会出现 ssh 密码提示。有没有办法在不提示密码的情况下做到这一点?ssh -o "StrictHostKeyChecking no" [email protected]

答案1

正如另一个答案中提到的那样,ssh-keyscan这是理想的,但如果由于某种原因你不能这样做:你可以通过设置选项来禁用密码验证

PasswordAuthentication no

在配置文件中(例如.ssh/config),或在命令行上传递选项-o PasswordAuthentication,从而防止 ssh 要求您输入密码。不用说,服务器会将此视为失败的登录尝试,除非您配置了另一种身份验证方法让您登录。

正如您已经注意到的,将选项的值StrictHostKeyCheckingask默认值更改为no(或者yes如果您想要更好的安全性)是必要的,以避免提示您是否要将主机密钥添加到.ssh/known_hosts

答案2

使用ssh-keyscan 10.x.x.x >> /path/to/known_hosts/file(使用 -H 可获得更好的安全性,具体取决于上下文)。

相关内容