1. 问题现象
ssh连接远程服务器的时候,如果长时间没有操作,远程连接就有可能中断。正在执行的程序和vim等缓冲区数据都会丢失。
2. 解决方案一(server去设置SSH保持连接时间)
设置一个超时的秒数,600秒后终端上没有任何操作便自动断开连接。
基于安全的理由,如果用户连线到 SSH Server 后闲置,SSH Server 会在超过特定时间后自动终止 SSH 连线
a、打开 /etc/ssh/sshd_config 文件,找到一个参数为 ClientAliveCountMax,它是设定用户端的 SSH 连线闲置多长时间后自动终止连线的数值,单位为分钟;如果这一行最前面有#号,将那个#号删除,并修改想要的时间。
b、修改后保存并关闭文件,重新启动 sshd:
/etc/rc.d/init.d/sshd restart
c、vim .bash_profile
export TMOUT=1000000
3. 解决方案二(保持ssh连接不断开)
a、实现方式一(在客户端配置)
vi /etc/ssh/ssh_config(注意不是/etc/ssh/sshd_config文件),后面添加
Host *
ServerAliveInterval 30
这表示要让所有的ssh连接自动加上此属性;如果要指定服务端,如下:
使用-o的参数ServerAliveInterval来设置一个防止超时的时间
ssh -o ServerAliveInterval=30 IP地址
b、在服务端配置
编辑服务端 /etc/ssh/sshd_config,最后增加
ClientAliveInterval 60
ClientAliveCountMax 1
这 样,SSH Server 每 60 秒就会自动发送一个信号给 Client,而等待 Client 回应。