【发布时间】:2017-06-12 06:40:23
【问题描述】:
我正在尝试检查 SSH 连接是否成功(在运行脚本时)。
我正在尝试使用来自here 的答案,但不成功的连接返回错误代码0。
$ ssh -q user@downhost exit
$ echo $?
0
我尝试了各种无效的ssh 命令,但它们都返回0 返回码;使检查失败变得困难。
我觉得我一定做错了什么,但无法解决。有没有我改变了一些设置?
我正在运行 CentOS 7,使用以下 SSH 版本:
$ ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
【问题讨论】:
-
您是否尝试过其他答案,例如运行
ssh -o BatchMode=yes -o ConnectTimeout=5 user@host echo ok 2>&1?这将在成功登录时ok。 -
ssh -q user@downhost exit为什么你认为这个命令会失败?您是否理解在另一个问题中,“downhost”应该代表当时无法访问的主机? -
@Inian,我可能会从那个答案中破解一些东西(也许在子shell中运行?),但我希望这是
if语句的条件,所以返回码似乎看的地方。 -
@Kenster。我已经尝试使用无法联系的 IP 地址、不存在的主机名和主机密钥检查失败的主机名。我仍然感到困惑。我原以为命令会失败,除非它成功连接。