SSH:使用 Putty 时 Clientalivemaxcount=0?

SSH:使用 Putty 时 Clientalivemaxcount=0?

因此,我担心使用 Clientaliveinterval 和 Clientalivemaxcount 时我的 SSH 守护进程的一些特定行为。

假设以下配置:

Clientaliveinterval 60 Clientalivemaxcount 0

还假设以下其他参数:

  • 服务器操作系统:基于 Debian Stretch(Proxmox VE 5)
  • 客户端操作系统:Windows 10 64位
  • 连接:WinSCP 和 Putty

上述设置应在 60 秒后断开我的客户端,而无需发送数据包。现在,这在我的 WinSCP 会话中有效。但为什么这对 Putty 不起作用?

编辑:请参阅我自己的回答,以描述错误所在以及如何修复它。

答案1

感谢来自的评论djsmiley2k这让我走上了正确的道路!

我想解释一下我的情况出了什么问题(因为我认为一开始就不是那么明显),所以它可能会帮助其他人。

  1. 登录后,我从 WinSCP 内部启动了 Putty 会话。
  2. 我等待了指定的时间,60 秒后 WinSCP 会话断开了。
  3. 但是,我的 Putty 会话仍然有效。
  4. 右键单击Putty终端窗口-->更改设置-->连接
  5. 我现在注意到,有一个为 的值设置了 30 秒Seconds between keepalives
  6. 手动将其设置为 0 后,我按预期在定义的时间范围后断开了连接。
  7. 然而,重新连接时,同样的行为再次出现。

来自 WinSCPs 官方文档

默认情况下,WinSCP 会为 PuTTY 创建临时站点设置(名称为“WinSCP 临时会话”)。站点设置将仅包含 WinSCP 已知的选项,主要是连接选项。它特别缺少任何终端选项,因此将应用默认设置。要更改默认设置,请修改 PuTTY 中的“默认设置”配置文件。

如果您想要配置自己的会话特定选项,您可以保存 PuTTY >站点设置,并将其命名为与 WinSCP 站点相同的名称。然后 WinSCP 将指示 >PuTTY 打开该会话(它不会导出任何设置,也不会导出连接 >选项)。

要修复此行为:

  1. 打开 Putty(在 WinSCP 之外)。
  2. 加载特别会话WinSCP temporary session
  3. Connection
  4. 检查keepalives-value 是否设置为 0。
  5. 返回Session
  6. 保存配置与 WinSCP 中的会话名称相同
  7. 现在再试一次,你应该发现 WinSCP 和 Putty 连接都按预期终止。

相关内容