ServerAliveInterval 的默认值是多少?

ServerAliveInterval 的默认值是多少?

我正在使用亚马逊Linux,

[davea@mymachine ~]$ uname -a
Linux mymachine.mydomein.org 4.4.35-45.83.amzn1.x86_64 #1 SMP Wed Jul 27 22:37:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

在我的 /etc/ssh/sshd_config 中,我没有为“ServerAliveInterval”设置值。在这个答案中——sshd_config 中的 `ServerAliveInterval` 和 `ClientAliveInterval` 选项到底有什么作用?,他们说“设置值 0(默认值)将禁用这些功能,因此如果闲置时间过长,您的连接可能会断开”。这意味着什么?准确地说,如果提交此参数,连接将保持活动状态的默认时间是多少?假设我在客户端设置了一个值“1000000000000”。

答案1

的价值服务器活动间隔意思是“如果在这段时间内没有从服务器收到数据,则向服务器发送 NULL 消息”。

相似地,客户端活动间隔意思是“如果在这段时间内没有从客户端收到数据,则向客户端发送 NULL 消息”。

默认值通常0意味着这些功能被禁用。

这样做的主要用途是防止中间路由器和防火墙认为会话空闲并丢弃它。它对 ssh 服务器本身没有真正的影响。

例如,许多家庭 NATting 路由器会在一段时间后丢弃空闲会话(具体时间取决于您的路由器;我见过从 1 小时到超过 21 天的值)。通过设置,ServerAliveInterval您可以通过确保始终存在来伪造路由器中的空闲超时一些路由器间隔内的流量。

答案2

除了接受的答案之外,请注意,将 ServerAliveInterval 设置为一万亿(如您的问题)可能会导致 32 位 OpenSSH 客户端出现“无效时间值”错误。虽然我手头没有 32 位客户端来测试这一点,但在使用 64 位客户端将间隔设置为 2^63 = 9223372036854775808 或更高时,我确实收到此错误消息。

一万亿秒相当于 31709 年。如果您不希望发送服务器活动消息,只需将其保留为默认设置 0,即可关闭此功能。

此外,考虑到已接受答案中的信息,如果您想使用此功能,您可能需要将 ServerAliveInterval 设置为低于 3600。

相关内容