Linux ssh远程连接断开问题处理办法解决

2019-01-17 00:24:46王冬梅

我们在通过远程连接操作Linux server的时候,有可能过一段时间忘记操作,便会发生ssh断开的问题。

而如果是本地的server,比较好办,直连设备kill掉ssh,踢掉无效用户连接,再次链接即可,但如果是远程server的话,那就比较麻烦。

而使用ssh连接远程服务器的时候,如果长时间没有操作,远程连接就有可能中断。正在执行的程序和vim等缓冲区数据都会丢失。

关于这个问题,下面有几种解决办法,供参考:

echo TMOUT=600 >> ~/.bashrc  或   echo TMOUT=600 >> /etc/profile    设置一个超时的秒数,600秒后终端上没有任何操作便自动断开连接。

或者 修改ssh客户端的配置:给/etc/ssh/ssh_config添加ServerAliveInterval 60

一.在Linux server去设置SSH保持连接时间:

基于安全的理由,如果用户连线到 SSH Server 后闲置,SSH Server 会在超过特定时间后自动终止 SSH 连线。以下是设定终止连线时间的方法:

1、打开 /etc/ssh/sshd_config 文件,找到一个参数为 ClientAliveCountMax,它是设定用户端的 SSH 连线闲置多长时间后自动终止连线的数值,单位为分钟。

2、如果这一行最前面有#号,将那个#号删除,并修改想要的时间。

3、修改后保存并关闭文件,重新启动 sshd:

/etc/rc.d/init.d/sshd restart

4. vim .bash_profile

export TMOUT=1000000

二.保持ssh连接不断开

用ssh连接服务端,一段时间不操作或屏幕没输出(比如复制文件)的时候,会自动断开

解决:(2种办法)

1、在客户端配置

#vi /etc/ssh/ssh_config(注意不是/etc/ssh/sshd_config文件),后面添加

Host * ServerAliveInterval 30

这表示要让所有的ssh连接自动加上此属性;如果要指定服务端,如下:

使用-o的参数ServerAliveInterval来设置一个防止超时的时间

ssh -o ServerAliveInterval=30 IP地址

2、在服务端配置

编辑服务器 /etc/ssh/sshd_config,最后增加

ClientAliveInterval 60 ClientAliveCountMax 1

这 样,SSH Server 每 60 秒就会自动发送一个信号给 Client,而等待 Client 回应

三.修改server和连接终端

Linux系统server

在linux系统中使用ssh连接远程服务器时,可以使用-o的一个参数ServerAliveInterval来设置防止超时的时间。

比如:ssh -o serveraliveinterval=60 username@hostIP

服务器配置修改

修改ssh配置文件/etc/ssh/sshd_config,添加或者修改ClientAliveInterval为“ClientAliveInterval 60”。这个参数的是意思是每1分钟,服务器向客户端发一个消息,用于保持连接。保存后记得重启ssh服务。