在 /etc/ssh/sshd_config 下我有:
ClientAliveInterval 900
ClientAliveCountMax 0
这实际上会在 15 分钟后关闭 SSH 会话。当使用 Putty 或其他工具连接到服务器来初始化 SSH 会话时,这可以按预期工作。但是,当使用 SFTP 或 SCP(使用端口 22)时,这些会话会无限期地保持活动状态。既然他们使用sshd
,那么终端会话的相同配置是否适用?
使用 RHEL 6.10。
编辑:修复了不正确的设置名称。
答案1
你这里有两个问题。一如评论中提到的,ClientAliveCountMax
设置为 0 会禁用 keepalive 机制,至少在 OpenSSH 8.2 中是这样。您需要将其设置为正值,以便 OpenSSH 发送 keepalive。 3通常是一个合适的值。
另外就是这些设置不断开连接全部空闲连接,但只有空闲连接在哪里无法联系到客户端。换句话说,它们的存在是为了检测客户何时离开。此外,只要服务器和客户端都保持适当的网络连接,发送保活将使 TCP 连接无限期地保持活动状态。
例如,我可以为一台服务器打开这些设置,并在另一台计算机上使用 SFTP 在该服务器上挂载磁盘,只要它们保持可靠的网络连接,SFTP 连接就会持续存在。