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

mul*_*lle 18 linux ssh bash rsa-key-fingerprint

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

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

nos*_*sid 25

ssh -o PasswordAuthentication=no user@hostname
Run Code Online (Sandbox Code Playgroud)

有关ssh_config详细信息,请参见手册页.


Mik*_*ike 5

设置PasswordAuthentication对我不起作用,但这样做了:

ssh -o BatchMode=yes user@hostname
Run Code Online (Sandbox Code Playgroud)

来自 ssh_config(5)

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

为了更好地衡量,您还可以加入StrictHostKeyChecking以便它会自动接受密钥并避免提示。

ssh -o StrictHostKeyChecking=no -o BatchMode=yes user@hostname
Run Code Online (Sandbox Code Playgroud)