天天看点

Linux ssh远程总是断开问题解决方案

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 回应。

继续阅读