0%

如何保持ssh连接

如何保持ssh连接

有时候使用ssh连接服务器,只是一会儿没用就自动断开连接了,又得重新连,很烦人,那么有没有办法可以让连接保持很久不断开呢?那肯定是有的

客户端配置(Linux/Mac)

1
2
3
4
5
6
# *表示所有服务器
Host *
# 与服务器连接的超时间隔,单位s。如果没有从服务器接收到任何数据,SSH将通过加密通道发送一条消息,请求服务器做出响应。默认是0,表示不会发消息给服务器
ServerAliveInterval 120
# 设置在SSH没有从服务器接收任何消息的情况下可以发送的服务器存活消息的数量。如果在发送服务器活动消息时达到该阈值,SSH将断开与服务器的连接,从而终止会话。默认值为3。
ServerAliveCountMax 30

按照上述配置 120*30 = 3600s,也就是一小时,在客户端和服务器之间没有数据传输的情况下,可以存活一小时

客户端配置(Windows)

windows一般都是使用ssh工具来进行连接的,找一下工具中有没有配置keepalive时间的地方

服务端配置

在/etc/ssh目录下的sshd_config就是用来配置ssh的,其对于客户端连接的配置默认是这样的

1
2
3
4
5
6
# 给客户端发送TCP kepalive消息
TCPKeepAlive yes
# 设置超时时间(以秒为单位),超过该时间后,如果未从客户端接收到数据,SSH服务器将通过加密通道发送消息,请求客户端响应。默认值为0,表示不会将这些消息发送到客户端。
ClientAliveInterval 120
# 设置在SSH服务器没有从客户端接收任何消息的情况下可以发送的客户端存活消息的数量。如果在发送客户机活动消息时达到该阈值,SSH服务器将断开与客户机的连接,从而终止会话。默认值为3。
ClientAliveCountMax 30

按照上述配置 120*30 = 3600s,也就是一小时,在客户端和服务器之间没有数据传输的情况下,可以存活一小时

然后重启下ssh就可以了

1
service sshd reload

欢迎关注我的其它发布渠道