SSH 连接在不活动一段时间后输出较大后冻结

SSH 连接在不活动一段时间后输出较大后冻结

在闲置一段时间后再次使用 SSH 会话后,我遇到了 SSH 会话冻结的问题。

问题是会话不会立即冻结,我仍然可以使用它。但是,一旦命令发送更多数据,它就会在任何输出到达之前冻结,我必须重新启动终端。

如果已阅读有关 MTU 的早期解决方案,但是会话每次都会冻结。在这里,只有在一段时间不活动之后才会发生这种情况。

ServerAliveInterval 120请注意,我已经在 .ssh/ssh_config 中设置

关于如何解决这个问题有任何线索吗?

答案1

改成。~/.ssh/ssh_config~/.ssh/config确保其权限为700。

讨论有很多好信息。您还可以按照标签ssh(只需单击问题下的 /ssh)转至标签维基获取更多信息和故障排除指导。

答案2

建议:

  • 尝试在命令行上而不是通过 来设置ServerAliveIntervalServerAliveCountMax和选项,以排除读取设置时出现问题。也许应该直接调用?TCPKeepAlivessh_configssh_configconfig
  • 使用详细标志(多次)可以增加出现解释性错误消息的机会
  • 在终止您的 ssh 会话之前,请确保ServerAliveInterval*ServerAliveCountMax小于防火墙的空闲时间阈值(询问您的网络管理员)。
  • 如果服务器是您的,您可以尝试ClientAlive*那里的 - 选项。
  • 如果客户端+服务器上都没有 OpenSSH,请检查版本不兼容。

答案3

您可以设置客户端发送 TCP 保持活动消息。我知道它在腻子的连接选项下。不确定命令行选项,但这在我遇到问题时为我解决了。虽然它只对我在学校的win7机器上有用。

相关内容