我有一台 CentOS 服务器,可以通过 SSH 从我的 Windows 笔记本电脑访问它,可以手动使用 Putty,也可以通过编程使用 Python Fabric 模块访问。
有时经过一段时间不活动后连接就会关闭。
我的主要问题是何时/为什么? 哪里有指定何时关闭 SSH 连接的设置? 如果未设置,则默认值是什么? 我只是想了解关闭连接的逻辑... 有时它似乎允许连接保持打开状态超过 12 小时不活动,而其他时候它似乎在约 30 分钟不活动后关闭连接。
第二个问题是,我是否有办法让 Putty 保持打开状态。现在,Putty 只是告诉我连接已关闭,并让我关闭窗口。我是否有办法让 Putty 重新启动连接,而不需要我关闭窗口并手动重新登录?
答案1
您可能已经设置了ClientAliveCountMax 0
一些ClientAliveInterval
选项sshd_config
(或使用了一些默认值)。
将这些值设置为非零值应该允许服务器发送保持活动消息,以验证客户端仍然在响应。
客户端上应该有类似的选项(在 openssh 中调用)ServerAliveCountMax
和ServerAliveInterval
)。
此行为也可以通过使用客户端选项TCPKeepAlive
和服务器上的相同选项来实现,但默认情况下是启用的。