我写了一些脚本,并希望将远程主机添加到我的known_hosts文件中,而不进行任何交互。 我可以运行一个像ssh -o "StrictHostKeyChecking no" [email protected]这样的命令,它将把远程主机密钥添加到我的已知主机,但是之后会有一个ssh密码提示符。 任何方式没有密码提示做到这一点?
正如在另一个答案中提到的, ssh-keyscan是理想的,但是如果由于某种原因你不能这样做:你可以通过设置选项来禁用密码validation
PasswordAuthentication no
在configuration文件(例如.ssh/config )中,或者在命令行中传递选项-o PasswordAuthentication ,从而阻止ssh向你询问密码。 毋庸置疑,服务器将此视为失败的login尝试,除非您configuration了另一种可以让您login的身份validation方法。
正如您已经注意到的那样,将StrictHostKeyChecking选项的值从ask (缺省值)更改为no (或者如果您想要更好的安全性,则是),以避免提示是否要将主机密钥添加到.ssh/known_hosts 。
使用ssh-keyscan 10.xxx >> /path/to/known_hosts/file (为了更好的安全性,使用-H取决于上下文)。