因此,我担心使用 Clientaliveinterval 和 Clientalivemaxcount 时我的 SSH 守护进程的一些特定行为。
假设以下配置:
Clientaliveinterval 60 Clientalivemaxcount 0
还假设以下其他参数:
- 服务器操作系统:基于 Debian Stretch(Proxmox VE 5)
- 客户端操作系统:Windows 10 64位
- 连接:WinSCP 和 Putty
上述设置应在 60 秒后断开我的客户端,而无需发送数据包。现在,这在我的 WinSCP 会话中有效。但为什么这对 Putty 不起作用?
编辑:请参阅我自己的回答,以描述错误所在以及如何修复它。
答案1
感谢来自的评论djsmiley2k这让我走上了正确的道路!
我想解释一下我的情况出了什么问题(因为我认为一开始就不是那么明显),所以它可能会帮助其他人。
- 登录后,我从 WinSCP 内部启动了 Putty 会话。
- 我等待了指定的时间,60 秒后 WinSCP 会话断开了。
- 但是,我的 Putty 会话仍然有效。
- 右键单击Putty终端窗口-->更改设置-->连接
- 我现在注意到,有一个为 的值设置了 30 秒
Seconds between keepalives
。 - 手动将其设置为 0 后,我按预期在定义的时间范围后断开了连接。
- 然而,重新连接时,同样的行为再次出现。
默认情况下,WinSCP 会为 PuTTY 创建临时站点设置(名称为“WinSCP 临时会话”)。站点设置将仅包含 WinSCP 已知的选项,主要是连接选项。它特别缺少任何终端选项,因此将应用默认设置。要更改默认设置,请修改 PuTTY 中的“默认设置”配置文件。
如果您想要配置自己的会话特定选项,您可以保存 PuTTY >站点设置,并将其命名为与 WinSCP 站点相同的名称。然后 WinSCP 将指示 >PuTTY 打开该会话(它不会导出任何设置,也不会导出连接 >选项)。
要修复此行为:
- 打开 Putty(在 WinSCP 之外)。
- 加载特别会话
WinSCP temporary session
- 去
Connection
- 检查
keepalives
-value 是否设置为 0。 - 返回
Session
- 保存配置与 WinSCP 中的会话名称相同。
- 现在再试一次,你应该发现 WinSCP 和 Putty 连接都按预期终止。