在闲置一段时间后再次使用 SSH 会话后,我遇到了 SSH 会话冻结的问题。
问题是会话不会立即冻结,我仍然可以使用它。但是,一旦命令发送更多数据,它就会在任何输出到达之前冻结,我必须重新启动终端。
如果已阅读有关 MTU 的早期解决方案,但是会话每次都会冻结。在这里,只有在一段时间不活动之后才会发生这种情况。
ServerAliveInterval 120
请注意,我已经在 .ssh/ssh_config 中设置
关于如何解决这个问题有任何线索吗?
答案1
答案2
建议:
- 尝试在命令行上而不是通过 来设置
ServerAliveInterval
、ServerAliveCountMax
和选项,以排除读取设置时出现问题。也许应该直接调用?TCPKeepAlive
ssh_config
ssh_config
config
- 使用详细标志(多次)可以增加出现解释性错误消息的机会
- 在终止您的 ssh 会话之前,请确保
ServerAliveInterval
*ServerAliveCountMax
小于防火墙的空闲时间阈值(询问您的网络管理员)。 - 如果服务器是您的,您可以尝试
ClientAlive*
那里的 - 选项。 - 如果客户端+服务器上都没有 OpenSSH,请检查版本不兼容。
答案3
您可以设置客户端发送 TCP 保持活动消息。我知道它在腻子的连接选项下。不确定命令行选项,但这在我遇到问题时为我解决了。虽然它只对我在学校的win7机器上有用。