如何从SSH客户端禁用密码提示?


9

我有一个依赖于公用/专用密钥ssh身份验证的脚本。问题是某些系统配置错误,并且没有设置正确的ssh公共/专用密钥信任。发生这种情况时,ssh请问我一个阻止脚本执行的密码。我已经尝试过以下命令:

sudo ssh -o "PasswordAuthentication=no" -o "ChallengeResponseAuthentication=no" root@last-call

但是我仍然提示输入root密码。


经过反复试验,我找到了所需的选项。 "PreferredAuthentications=publickey"
Red Cricket '02

比建议的解决方案好吗?(BatchMode)
knocte

Answers:


9

做到这一点的标准方法是使用以下BatchMode选项:

ssh -o BatchMode=yes …

根据手册

如果设置为“是”,密码短语/密码查询将被禁用。此选项在没有用户提供密码的脚本和其他批处理作业中很有用。

我本来期望的组合PasswordAuthentication=noChallengeResponseAuthentication=no足够虽然。ssh -vv可能会提供线索。


那也行!$ sudo ssh last-call-2 Password: $ sudo ssh -o "BatchMode=yes" last-call-2 Permission denied (gssapi-keyex,gssapi-with-mic,publickey,password,keyboard-interactive).
Red Cricket
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.