使用 bash.ssh 时,***** 端口 22 连接已关闭

问题描述 投票:0回答:1

我尝试通过 ssh 命令访问服务器,但是如果我等待太长时间才输入密码,它会显示连接已关闭“Connection returned by ***** port 22”(如果我不这样做不要等待太久,一切正常)。

如果输入了密码,是否有任何可能的方法用 catch/(重试)覆盖 ssh 命令1分钟后?

我搜遍了论坛,没有找到适合这种情况的命令。

bash ssh
1个回答
0
投票

如果输入了密码,是否有任何可能的方法用 catch/(重试)覆盖 ssh 命令1分钟后?

其实不然。 shell 运行的命令通过其退出状态并可能通过其标准流向其提供返回信息。您正在以需要用户交互的模式运行

ssh
,因此其标准流致力于支持该交互。这样您就可以处理退出状态了。

但是根据其文档

ssh

以远程命令的退出状态退出,如果存在则以 255 退出 发生错误。

这意味着虽然主机 shell 可以检测到出现问题的时间,但它无法区分远程命令根本没有执行的错误(例如,因为密码提示超时)和远程命令通过退出而报告的错误状态 255.

© www.soinside.com 2019 - 2024. All rights reserved.