如何防止 SSH 空闲会话超时?

如何防止 SSH 空闲会话超时?

我正在使用 iterm2 从 Mac 通过 SSH 连接到 RHEL 服务器。 ServerAliveInterval在客户端 SSH 配置中设置为 60,TCPKeepAlive在服务器 sshd 配置中设置为“是”。但是,空闲会话总会在一段时间后超时(我没有计时)。正在运行的会话(例如长时间运行的进程或tail将无限期地保持活动状态)。是否有某种方法可以通过使用服务器、客户端和 iterm2 设置的组合来保持空闲会话处于活动状态,但我一直找不到?

答案1

ServerAliveInterval为了这个目的,我在客户端和服务器端一起使用ClientAliveInterval,多年来我没有看到掉线的情况(除了完全失去连接的情况)。

我没有设置TCPKeepALive,但我相信它默认是开启的(但我怀疑它是否会生成,因为我的上述设置在可能阻止它的范围内)。

对于连接断开/挂起的情况,我建议使用tmuxscreen并在其中运行一个程序。您将能够在后续连接时恢复会话。这当然仅适用于命令行/文本应用程序,X 转发将中断。

编辑:

我在用:

ClientAliveInterval 60
ClientAliveCountMax 5

ServerAliveInterval 30
ServerAliveCountMax 10

我可能应该改变后者以匹配前者。

相关内容