centos

CentOS SSH会话保持方法

小樊
38
2025-09-26 06:49:49
栏目: 智能运维

CentOS SSH会话保持方法

1. 配置SSH服务端心跳机制(推荐)

通过调整SSH服务端配置,定期发送心跳包以维持连接。编辑服务端配置文件/etc/ssh/sshd_config,添加或修改以下参数:

systemctl restart sshd  # CentOS 7/8/9
# 或 service sshd restart  # CentOS 6

此方法需服务器权限,适合长期稳定保持会话。

2. 配置SSH客户端心跳(临时/无需服务器修改)

若无法修改服务器配置,可通过客户端设置主动发送心跳。编辑客户端配置文件~/.ssh/config(或创建该文件),添加以下内容:

Host *  # 适用于所有主机
    ServerAliveInterval 60  # 客户端每60秒向服务器发送一次心跳
    ServerAliveCountMax 3   # 连续3次无响应后断开(可选,建议与服务器端一致)

或临时通过命令行指定(仅当前连接有效):

ssh -o "ServerAliveInterval 60" user@hostname

此方法快速便捷,适合临时会话或无服务器权限的场景。

3. 使用终端复用工具(screen/tmux)

终端复用工具可在断开连接后保留会话状态,重新连接后恢复工作。

4. 使用autossh自动重连

autossh是一款自动重连SSH的工具,适合网络不稳定的环境。安装:sudo yum install autossh -y
基本用法:

autossh -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" user@hostname

参数说明:

5. 防火墙设置(确保连通性)

若服务器启用了防火墙(如firewalld),需确保SSH端口(默认22)开放,避免因防火墙拦截导致连接中断。执行以下命令:

firewall-cmd --permanent --add-service=ssh  # 开放SSH服务
firewall-cmd --reload                      # 重新加载防火墙规则

若使用iptables,需添加对应规则允许SSH流量。

以上方法可根据实际需求组合使用(如“服务端心跳+autossh”提升稳定性、“tmux+终端复用”保留会话状态),有效解决CentOS SSH会话超时断开的问题。

0
看了该问题的人还看了