如果公钥validation失败,如何让ssh失败而不是提示input密码?

我有一个使用公钥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