SSH 设置保持连接方法

由于服务器或防火墙会在 SSH 连接一段时间没有活动后,会自动断开连接,然后控制台就会卡死,很不方便,所以需要想办法保持连接。

方法一、通过修改 Server 端设置,保持连接

通过修改服务端设置,以保证任何连接到该服务器的客户端都能使用此设置。

sudo vim /etc/ssh/sshd_config

配置如下:

# Server 每隔 15 秒发送一次请求给 Client,然后 Client响应,从而保持连接

ClientAliveInterval 15

# Server发出请求后,客户端没有响应得次数达到 10,就自动断开连接,正常情况下,Client不会不响应

ClientAliveCountMax 10

重启ssh服务

sudo service sshd restart

方法二、通过修改 Client 端设置,保持连接

通过修改客户端设置,以保证本地客户端连接所有远程服务器都使用此设置。

sudo vim /etc/ssh/ssh_config  

# 或 

sudo vim ~/.ssh/config

配置如下:

Host *
    TCPKeepAlive yes
    ServerAliveInterval 15 # Client每隔 15 秒发送一次请求给 Server,然后 Server响应,从而保持连接
    ServerAliveCountMax 5 # Client发出请求后,服务器端没有响应得次数达到5,就自动断开连接,正常情况下,Server 不会不响应

方法三、使用命令行参数,设置当前连接保持

用于只对个别连接使用设置的情况。

$ ssh -o ServerAliveInterval=15 user@sshserver