我有一个使用公钥authentication的脚本。 其中一台服务器由于configuration问题而停止让脚本login,这意味着脚本被一个“密码:”提示卡住,显然它不能回答,因此甚至不会尝试其余的服务器在列表中。
有没有办法告诉SSH客户端,如果密钥身份validation失败,不提示input密码,而只是报告连接错误,让我的脚本继续?
对于OpenSSH,还有BatchMode,除了禁用密码提示之外,还应禁用密钥的密码查询。
批处理模式
如果设置为“是”,密码/密码查询将被禁用。 此选项在没有用户提供密码的脚本和其他批处理作业中很有用。 争论必须是“是”或“否”。 默认是“否”。
示例用法:
ssh -oBatchMode=yes -l <user> <host> <dostuff>
将以下内容添加到~/.ssh/config
:
PasswordAuthentication no
并在服务器上禁用密码authentication,将同一行添加到/etc/ssh/sshd_config
并重新启动sshd
。
如果您使用dropbear,只需添加“ -s
”选项来禁用密码validation。
在命令行(或~/.ssh/config
)上,您可以设置PreferredAuthentications
。
PreferredAuthentications=publickey