我编写了一些脚本,希望known_hosts
在不进行任何交互的情况下将远程主机添加到我的文件中。我可以运行类似这样的命令,它将远程主机密钥添加到我的已知主机,但随后会出现 ssh 密码提示。有没有办法在不提示密码的情况下做到这一点?ssh -o "StrictHostKeyChecking no" [email protected]
答案1
正如另一个答案中提到的那样,ssh-keyscan
这是理想的,但如果由于某种原因你不能这样做:你可以通过设置选项来禁用密码验证
PasswordAuthentication no
在配置文件中(例如.ssh/config
),或在命令行上传递选项-o PasswordAuthentication
,从而防止 ssh 要求您输入密码。不用说,服务器会将此视为失败的登录尝试,除非您配置了另一种身份验证方法做让您登录。
正如您已经注意到的,将选项的值StrictHostKeyChecking
从ask
默认值更改为no
(或者yes
如果您想要更好的安全性)是必要的,以避免提示您是否要将主机密钥添加到.ssh/known_hosts
。
答案2
使用ssh-keyscan 10.x.x.x >> /path/to/known_hosts/file
(使用 -H 可获得更好的安全性,具体取决于上下文)。