我使用SSH密钥交换连接了两个服务器。现在,我可以登录到远程服务器,没有密码。
现在,我想验证连接是否真的在没有密码的情况下工作-- .How,我能这样做吗?
我尝试了以下方法,SSH应该在10秒后超时,我将捕获它的返回代码。但从来没有。一旦超时。它仍然保留在密码提示上。
ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 user@ip.ip.ip.ip exit
if [ "$?" -ne 0 ];then
echo "SSH keys no more working,you need to initiate keys exchange again!!"
exit 1;
fi案件-我
但是,当SSH密钥不起作用时,它永远不会超时,并且保持密码提示.所以不能捕获返回代码。
ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 user@ip.ip.ip.ip exit
Enter Windows password:案例二
当我提供的IP地址是不可点击的,那么这个方法是可行的。
ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 user@ip1.ip1.ip1.ip1 exit
ssh: connect to host ip1.ip1.ip1.ip1 port 22: Connection timed out在确定SSH连接是否没有密码时需要帮助。
发布于 2016-06-24 05:57:48
可以使用PasswordAuthentication=no禁用密码身份验证。当公开密钥身份验证失败时,它将立即失败。
ssh -o BatchMode=yes -o ConnectTimeout=15 user@ip.ip.ip.ip exit编辑:当然,使用BatchMode应该有效。
https://stackoverflow.com/questions/38006170
复制相似问题