工作中常需要使用 SSH 连接着服务器,冲杯咖啡或暂时离开时会出现一段时间不操作终端,此时就会自动断开,这本身无伤大雅,但为此工作一半后重新连接就很影响效率。

众所周知,SSH 是用于与远程服务器建立加密通信通道的,因此配置涉及服务端,解决方法如下:

修改配置文件

vim /etc/ssh/sshd_config

# ClientAliveInterval 0 
# 服务器向客户端发送请求消息的时间间隔,默认为0,不发送
# ClientAliveCountMax 3
# 服务器发出求后客户端没有响应的最大次数,超过后将自动断开。
ClientAliveInterval 60
# 每60秒发送一个KeepAlive请求
ClientAliveCountMax 15
# 总时间为:15*60,15分钟没有操作,终端断开。
service sshd reload
# 重启ssh服务,或用service sshd restart

修改系统环境

vim /etc/profile
export TMOUT=1200 
# 单位秒,在文件末尾添加
source /etc/profile
# reload配置文件

ClientAliveInterval 的详细设置

# 全局设置
vim /etc/ssh/sshd_config
ServerAliveInterval 60

# 当前用户设置
vim  ~/.ssh/config 
Host *
  ServerAliveInterval 60
  # 有缩进

# 指定IP配置
vim ~/.ssh/config 
Host *hostname.com
# 指定IP
   ServerAliveInterval 60
   # 有缩进