SSH:不要在Shell脚本中提示输入密码

19

我正在使用 SSH,并设置了无密码 SSH。在脚本中使用 SSH 可以正常工作,但如果用户指定的主机没有设置无密码 SSH,则脚本会提示输入密码并停止执行。

如何避免出现密码提示,并在主机没有设置无密码 SSH 时返回错误?


由于SSH提示的原因有很多,因此http://serverfault.com/a/61936似乎是正确的答案。 - Oliver Gondža
2个回答

26
ssh -o PasswordAuthentication=no user@hostname

请查看 ssh_config 的 man 手册以获取更多详细信息。


这对于私钥身份验证无效,因为ssh会要求输入密钥的密码短语。 - Omer Anson

8

设置 PasswordAuthentication 对我无效,但这个可以:

ssh -o BatchMode=yes user@hostname

来自ssh_config(5)

BatchMode 如果设置为“yes”,则禁用密码/口令查询。此选项在脚本和其他批处理作业中很有用,因为没有用户提供密码。参数必须是“yes”或“no”。默认值为“no”。

为了保险起见,您还可以加入StrictHostKeyChecking,以便自动接受密钥并避免提示。

ssh -o StrictHostKeyChecking=no -o BatchMode=yes user@hostname

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接