服务器重新启动,但客户端旧的/过时的 SSH 连接仍然有效

服务器重新启动,但客户端旧的/过时的 SSH 连接仍然有效

因此,我正在为我的一个盒子开发一个小型 SSH 回调解决方案,但我遇到了一个小问题,我几乎不知道该查找什么来弄清楚发生了什么。

基本上,客户端通过 SSH 重新连接,并使用 .每 60 秒检查一次连接是否仍处于活动状态netstat。但是,如果服务器重新启动,并且我检查 netstat,连接仍然显示在那里。所以我基本上想确保客户端可以长时间保持 SSH 连接处于活动状态(即使它没有被使用),但是如果连接实际上从服务器终止,我希望客户端能够断开连接。

如果不是服务器,我应该考虑客户端上的哪些选项来确保陈旧/失效的 SSH 连接实际上被删除,同时确保我可以拥有持久的 SSH 连接以供将来访问?

我认为它可能已经设置了 ClientAliveInterval 和 ClientAliveCountMax,但我不确定是否需要在客户端或服务器上设置它,以及如果要在服务器上设置客户端如何知道它已断开连接。

答案1

您可以运行带有选项的 ssh 命令-o ServerAliveInterval=30 -o ServerAliveCountMax=3,如果服务器没有回复每 30 秒给出的 3 个 ping,这将关闭客户端。您可能还想查看自动SSH命令尝试确保连接始终保持打开状态。

相关内容