目录
原因
解决方法
即看即用
手工修改
脚本修改
详细说明
用putty/SecureCRT连续3分钟左右没有输入, 就自动断开, 然后必须重新登陆,。
解决方法即看即用
手工修改
一般修改两个地方可将这烦人的问题解决
vim /etc/profile中
export TMOUT=300
改为:
export TMOUT=0
vim /etc/ssh/sshd_config 中
将下面两句前的#去掉
#ClientAliveInterval 0
#ClientAliveCountMax 3
并ClientAliveInterval 0 改成 ClientAliveInterval 60
脚本修改
makeSSHlongConnect.sh
sed -i 's/^export TMOUT=.*/export TMOUT=0/' /etc/profile
sed -i "/#ClientAliveInterval/a\ClientAliveInterval 60" /etc/ssh/sshd_config #add line 'ClientAliveInterval 60' after '#ClientAliveInterval'
sed -i "/#ClientAliveInterval/d" /etc/ssh/sshd_config #delete line
sed -i '/ClientAliveCountMax/ s/^#//' /etc/ssh/sshd_config #delete "#" at the head of line
#service sshd restart #centos 6
/bin/systemctl restart sshd.service #centos7 +
删除脚本/文件的特殊字符|不可见字符|异常字符
TMPNAME=makeSSHlongConnect.sh&&mv ${TMPNAME} ${TMPNAME}_bak && tr -cd "[:print:]\n" < ${TMPNAME}_bak >> ${TMPNAME}&&rm -f ${TMPNAME}_bak
详细说明
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哦,否则刚才的修改是不会生效的。