我正在尝试检查SSH连接是否成功(运行脚本时)。
我正在尝试使用here的答案,但不成功的连接会返回错误代码0。
$ ssh -q user@downhost exit
$ echo $?
0
我尝试了各种无效的ssh
命令,但它们都返回了0
返回码;难以检查失败。
我觉得我必须做错事,但不能解决问题。是否有一些我可能改变的设置?
我正在使用以下SSH版本运行CentOS 7:
$ ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
答案 0 :(得分:0)
我仍然对示例失败的原因感到困惑,但以下似乎对我有用。
can_connect_ssh()
{
HOST=$1
ssh -q -o BatchMode=yes -o ConnectTimeout=5 $HOST echo connection_success | \
grep connection_success &> /dev/null
}
被称为:
if can_connect_ssh <hostname>; then
echo "Successful Connection"
else
echo "Failed Connection"
fi