【SSH】SSH自动断开连接的原因和解决办法|SSH保持长连接方法
目录
原因
用putty/SecureCRT连续3分钟左右没有输入, 就自动断开, 然后必须重新登陆,。
解决方法
即看即用
方法1:手工修改
一般修改两个地方可将这烦人的问题解决
vim /etc/profile中
export TMOUT=300
改为:
export TMOUT=0
vim /etc/ssh/sshd_config 中
将下面两句前的#去掉
#ClientAliveInterval 0
#ClientAliveCountMax 3
并ClientAliveInterval 0 改成 ClientAliveInterval 60
方法2:shell命令行修改
sudo sed -i 's/^export TMOUT=.*/export TMOUT=0/' /etc/profile &&sudo sed -i "/#ClientAliveInterval/a\ClientAliveInterval 60" /etc/ssh/sshd_config &&sudo sed -i "/#ClientAliveInterval/d" /etc/ssh/sshd_config &&sudo sed -i '/ClientAliveCountMax/ s/^#//' /etc/ssh/sshd_config &&sudo /bin/systemctl restart sshd.service
详细说明
1、修改 /etc/profile中改MOUT的值:export TMOUT=0
echo $TMOUT
如果显示空白,表示没有设置, 等于使用默认值0, 一般情况下应该是不超时. 如果大于0, 可以在如/etc/profile之类文件中设置它为0.
Definition: TMOUT: If set to a value greater than zero, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash terminates after waiting for that number of seconds if input does not arrive
2、修改/etc/ssh/sshd_config文件,将 ClientAliveInterval 0和ClientAliveCountMax 3的注释符号去掉,将ClientAliveInterval对应的0改成60
ClientAliveInterval指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送.而ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.ClientAliveCountMax, 使用默认值3即可.ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开. 正常情况下, 客户端不会不响应.
3、重启sshd ervice sshd restart
最后记得执行/etc/init.d/sshd restart service sshd restart哦,否则刚才的修改是不会生效的。
原文:如何解决ssh登陆,不久会自动断开的问题 -https://www.cnblogs.com/wangdidi/p/10944460.html
SSH自动断开连接的原因 - https://www.cnblogs.com/aoyihuashao/p/3298950.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!