ssh 连接能持续多长时间?

ssh 连接能持续多长时间?

我一直在 StackOverflow 上查看,似乎 SSH 连接会在一段时间内(2 小时?)看不到任何数据包时断开连接。另外,我查看了我的/etc/ssh/ssh_config文件,似乎没有任何内容可以保持我当前的连接。

我的问题是:即使 48 小时后,为什么 SSH 连接仍然存在? (我的计算机已关闭,但我通过 SSH 访问的服务器可能仍然在线)

答案1

理论上,SSH 连接可以无限期地持续。它可以由任何一方在 SSH 层(使用FIN数据包)显式终止,也可以在 TCP 层(使用数据RST包)异常终止。

RST如果一方发送数据包但在合理的时间内没有获得 TCP 确认,则可能会发生这种情况。这通常是因为对方已经不在了。如果中间有 NAT 或防火墙停止跟踪连接(通常是由于缺乏活动),也可能会发生这种情况,从而导致两方无法再进行通信。更阴险的是,邪恶 ISP 的路由器可能会将RST数据包注入连接,但此类措施通常只针对 ISP 认为令人反感的内容,例如 BitTorrent。

保持活动可以通过提醒 NAT 或防火墙维持连接状态来帮助保持连接活动。然而,保持活动状态也可能会造成损害,因为它会使网络连接中的短暂故障更有可能被注意到。

答案2

也许您必须在 sshd_config 中设置 ClientAliveInterval。

相关内容