解决SSH连接Linux超时自动断开 原创 Linux平台 2022年2月2日 16:49 夏至未至 3341 当前内容 1381 字,在路上,马上到,马上到 ### 问题发现 #### 问题一 [root@localhost /]# [root@localhost /]# 等待输入超时:自动登出 连接断开 或者 [root@localhost /]# [root@localhost /]# timed out waiting for input:auto-logout #### 问题二 这第二种超时断开,大概率就是 ssh 服务自身超时配置了。 ### 问题分析 #### 问题一分析 由于设置了 `TMOUT` 环境变量导致,TMOUT是系统自带变量,可通过echo $TMOUT来查看, TMOUT变量用于设置Shell的过期时间,当TMOUT为 N 时,Shell在 N 秒后将自动注销。设置TMOUT=0表示永不超时。 [root@localhost ~]# export TMOUT=5 [root@localhost ~]# 等待输入超时:自动登出 连接断开 表示 5 秒终端没有输出,就注销退出,设置为0表示不超时不退出 #### 问题二分析 SSH 配置文件 `sshd_config` 中如下两个参数决定超时断链: ClientAliveInterval 指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置N表示每N秒发送一次, 然后客户端响应, 这样就保持长连接了。(假设N=60) ClientAliveCountMax 表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开。正常情况下, 客户端都有回应,使用默认值M即可。(假设M=3) 总结:最终SSH超时断开时间为:N * M = 60 * 3 = 180s ### 问题解决 因为这里解决的是,不想让超时,故以下是设置不超时方法。想反向设置,针对原理自行设置即可 #### 第一步 针对 TMOUT 处理: 编辑环境变量配置文件 vi /etc/profile ---------------------------- export TMOUT=0 ---------------------------- 让配置立即生效 source /etc/profile #### 第二步 针对SSH超时处理: # 修改 SSHD 配置文件,将其中如下两个参数做如下设置 vi /etc/ssh/sshd_config # 配置如下,如下设置为 60 * 3 = 180s 后超时,可以设置更长 # ---------------------------- ClientAliveInterval 60 ClientAliveCountMax 3 # ---------------------------- # 重新加载ssd配置,让配置生效 service sshd reload 本文标题: 解决SSH连接Linux超时自动断开 本文作者: 夏至未至 发布时间: 2022年2月2日 16:49 最近更新: 2022年2月2日 17:04 原文链接: 许可协议: 署名-非商业性-禁止演绎 4.0 国际(CC BY-NC-ND 4.0) 请按协议转载并保留原文链接及作者 SSH超时(1) 上一个 Linux下进程间通信-六种机制 下一个 Linux系统不能查看历史命令解决 当前文章评论暂未开放,请移步至留言处留言。