我尝试通过 ssh 命令访问服务器,但是如果我等待太长时间才输入密码,它会显示连接已关闭“Connection returned by ***** port 22”(如果我不这样做不要等待太久,一切正常)。
如果输入了密码,是否有任何可能的方法用 catch/(重试)覆盖 ssh 命令1分钟后?
我搜遍了论坛,没有找到适合这种情况的命令。
如果输入了密码,是否有任何可能的方法用 catch/(重试)覆盖 ssh 命令1分钟后?
其实不然。 shell 运行的命令通过其退出状态并可能通过其标准流向其提供返回信息。您正在以需要用户交互的模式运行
ssh
,因此其标准流致力于支持该交互。这样您就可以处理退出状态了。
但是根据其文档,
ssh
以远程命令的退出状态退出,如果存在则以 255 退出 发生错误。
这意味着虽然主机 shell 可以检测到出现问题的时间,但它无法区分远程命令根本没有执行的错误(例如,因为密码提示超时)和远程命令通过退出而报告的错误状态 255.