由于服务器或防火墙会在 SSH 连接一段时间没有活动后,会自动断开连接,然后控制台就会卡死,很不方便,所以需要想办法保持连接。
通过修改服务端设置,以保证任何连接到该服务器的客户端都能使用此设置。
sudo vim /etc/ssh/sshd_config
配置如下:
# Server 每隔 15 秒发送一次请求给 Client,然后 Client响应,从而保持连接
ClientAliveInterval 15
# Server发出请求后,客户端没有响应得次数达到 10,就自动断开连接,正常情况下,Client不会不响应
ClientAliveCountMax 10
重启ssh服务
sudo service sshd restart
通过修改客户端设置,以保证本地客户端连接所有远程服务器都使用此设置。
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