gpt4 book ai didi

bash - 使用 SSH key 验证 SSH 连接

转载 作者:行者123 更新时间:2023-12-02 14:33:23 24 4
gpt4 key购买 nike

我已经使用 SSH key 交换连接了两台服务器。现在我可以在没有密码的情况下登录远程服务器。

现在,我想验证连接是否真的在没有密码的情况下工作。我该怎么做?

我尝试了以下方法,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 key 不起作用时,它永远不会超时并保持密码提示。所以无法捕获返回码。
ssh -o ServerAliveInterval=10 -o ConnectTimeout=15 user@ip.ip.ip.ip exit
Enter Windows password:

案例二

当我提供不可 ping 通的 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 连接是否无密码工作时需要帮助。

最佳答案

您可以使用 PasswordAuthentication=no 禁用密码验证。 .当公钥认证失败时,它将立即失败。

ssh -o BatchMode=yes -o ConnectTimeout=15 user@ip.ip.ip.ip exit

编辑:使用 BatchMode当然应该工作。

关于bash - 使用 SSH key 验证 SSH 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com