「OpenSSH」- 保持SSH在线(不掉线、不断开) @20210219

本文详细指导如何配置SSH客户端以防止因空闲而自动断开连接,涉及ServerAliveInterval和ServerAliveCountMax设置,同时介绍了在不同场景下如何利用这些设置,包括超时自动断开的应用和服务器端配置。

问题描述

在使用SSH远程服务器时,如果在一段时间内未进行任何操作,则连接会断开(或者挂起,无响应)。

本文将介绍如何配置SSH客户端,以解决该问题。

问题原因

该问题的原因由很多:

	可能是当前使用的NAT防火墙自动关闭会话;
	可能是远程服务器操作系统自动关闭空闲会话(当前TCP连接长时间没有数据流动)

这些都会导致连接被释放(断开)。

解决办法

可以定期向服务器发送报文,以暗示服务器该连接是使用中,请不要释放。

在SSH中,有两个ServerAliveCountMaxServerAliveInterval选项,可以实现该功能。

修改/etc/ssh/ssh_config(系统级别)或~/.ssh/config(用户级别):

Host *
    ServerAliveInterval 300
    ServerAliveCountMax 5

上述配置表示,如果超过300秒(ServerAliveInterval)没有收到服务端发送的报文,则客户端发送一个消息,并要求服务器返回。如果服务器没有返回,则再次重试,最多5次(ServerAliveCountMax),如果一直没有收到服务端的响应,则断开连接。

超时自动断开的使用

虽然自动断开连接不好的,但是它也有其他的用途。比如在远程使用ssh执行命令时,我们希望超时自动断开:

#!/bin/sh

ssh -o ServerAliveInterval=2 -o ServerAliveCountMax=2  root@ip-address "doing some stuff"

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值