SSH:当ssh-agent auth失败时,阻止请求密码短语

我正在编写一个脚本来遍历列表中的已知主机名,以便找到一个可以使用我的SSH密钥进行身份验证的SSH服务器.

该密钥已经加载了ssh-agent和ssh-add,因此如果我连接到一个知道我的密钥的工作远程主机,则不会提示密码,并且我没有任何交互就成功连接.

事情是,当远程主机不知道我的密钥时,ssh提示我使用密码(它没有机会成功,因为如果可能的话,它会因为ssh-agent而登录我).我想防止这种行为,并在ssh-agent auth失败时使ssh中止.

我目前正在使用以下命令绕过大部分交互,但我无法阻止我刚才描述的那个:

$ssh -i ~/.ssh/id_rsa                      \
      -o UserKnownHostsFile=/dev/null       \
      -o KbdInteractiveAuthentication=no    \
      -o StrictHostKeyChecking=no           \
      -o PreferredAuthentications=publickey \
      -o ConnectTimeout=1                   \
      $host -n "whoami"

谢谢你的回答.

最佳答案
man ssh_config:

 BatchMode
         If set to ``yes'', passphrase/password querying will be disabled.
         This option is useful in scripts and other batch jobs where no
         user is present to supply the password.  The argument must be
         ``yes'' or ``no''.  The default is ``no''.

转载注明原文:SSH:当ssh-agent auth失败时,阻止请求密码短语 - 代码日志