Ubuntu服务器SSH闲置15分钟断开,如何自定义超时时长?
调整Ubuntu SSH闲置会话超时时间并解决Broken Pipe问题
问题场景
从一台Ubuntu服务器SSH连接到另一台Ubuntu服务器时,会话闲置15分钟后会触发client_loop: send disconnect: Broken pipe错误并自动断开。希望保留闲置会话自动超时的安全特性,但将超时时长调整为60分钟。
常见方案误区
网上常见的两种配置并非用于控制闲置超时:
- 服务器端
sshd_config中的ClientAliveInterval选项 - 客户端
ssh_config中的ServerAliveInterval选项
这两个选项的作用是检测SSH通信通道的故障并关闭异常会话,而非控制因用户闲置导致的会话超时。
解决方案
1. 修复Broken Pipe问题,保持SSH通道正常
在服务器端的sshd_config中启用ClientAliveInterval,设置间隔小于900秒(例如600秒),以此维持SSH会话的通信通道,避免触发Broken Pipe错误。配置完成后执行:
sudo systemctl restart sshd.service
2. 设置shell闲置超时阈值
编辑服务器端的/etc/profile文件,在末尾添加以下内容:
TMOUT=3600 # 闲置1小时后自动断开shell连接 readonly TMOUT export TMOUT
效果验证
新建立的SSH连接若闲置超过1小时,会自动终止会话,服务器端会显示提示:等待输入超时:自动登出
内容的提问来源于stack exchange,提问作者RXS
相关产品推荐
相关产品推荐

