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

时间:2012-04-16 19:08:43

标签: linux bash ssh rsa-key-fingerprint

我正在使用ssh并为我的系统设置无密码ssh。在脚本中使用ssh工作正常,但如果用户指定的主机没有无密码的ssh设置,则脚本会提示输入密码并挂起。

如果没有为主机设置无密码ssh,我怎么能避免密码提示并返回错误?

2 个答案:

答案 0 :(得分:25)

ssh -o PasswordAuthentication=no user@hostname

有关详细信息,请参阅ssh_config的手册页。

答案 1 :(得分:1)

设置 PasswordAuthentication 对我不起作用,但这确实可行:

ssh -o BatchMode=yes user@hostname

来自ssh_config(5)

  

批处理模式:如果设置为“是”,则密码/密码查询将被禁用。此选项在脚本和其他批处理作业中非常有用,其中   没有用户可以提供密码。参数必须是   ''是还是不是''。默认值为“否”。

出于良好的考虑,您还可以放入 StrictHostKeyChecking ,这样它将自动接受密钥并避免出现提示。

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