在日常的Linux服务器管理中,SSH是最常用的远程管理工具之一。然而,长时间无操作时,SSH会话可能会自动断开,这会影响某些长时间执行任务的管理工作。本文将介绍几种保持SSH会话不超时的方案,帮助您避免因超时导致的连接中断。

方案一:在客户端配置SSH保持活动

在SSH客户端中配置”保持活动”设置,让客户端定时向服务器发送信号,以维持连接。

修改客户端配置文件在本地SSH配置文件 ~/.ssh/config 中,添加以下配置:

  • ServerAliveInterval:设置客户端每隔60秒向服务器发送一次“保持活动”消息。
  • ServerAliveCountMax:若客户端未收到服务器响应,则发送5次后会断开连接。
通过这种方式,客户端会不断发送心跳信号来保持连接,适用于在客户端一侧的简单配置。

方案二:在服务器端配置SSH保持活动

如果您有服务器的管理权限,可以在服务器端设置”保持活动”配置,确保客户端无操作时仍能保持连接。

  1. 修改服务器配置文件编辑SSH服务器配置文件(通常是 /etc/ssh/sshd_config),添加或修改以下配置项:
  • ClientAliveInterval:设置服务器每隔60秒向客户端发送“保持活动”消息。
  • ClientAliveCountMax:若客户端未响应,则发送3次后会断开连接。
  1. 重启SSH服务

修改完成后,需要重启SSH服务以使配置生效:

  1. 这种方式通过服务器主动检测客户端是否在线,适合在服务器端控制超时时间的场景。

方案三:使用Tmux或Screen会话管理工具

除了通过配置文件的方式,还可以使用tmux或screen等会话管理工具,即使SSH断开,仍可以恢复未中断的会话,非常适合长时间运行任务的场景。

  • 安装 Tmux 或 Screen
    • 在Ubuntu中安装:sudo apt install tmux
    • 在CentOS中安装:sudo yum install tmux
  • 创建新会话使用以下命令创建一个新的 tmux 会话:
  • 断开会话

在 tmux 中按下 Ctrl+B,然后按 D 键,这样可以断开当前会话。

  • 重新连接会话

再次连接到服务器后,使用以下命令重新附加到会话:

使用tmux或screen的方式,即使SSH连接断开,后台任务也不会受到影响。

总结

本文介绍了三种防止SSH超时断开的方式:

  • 客户端保持活动:通过在本地SSH配置中设置ServerAliveInterval和ServerAliveCountMax。
  • 服务器端保持活动:通过在服务器SSH配置中设置ClientAliveInterval和ClientAliveCountMax。
  • 使用会话管理工具:使用tmux或screen工具在会话中管理任务,断开SSH后可重新连接。

根据实际需求选择合适的方式,可以有效避免因超时导致的SSH会话中断问题,提高服务器管理的效率与体验。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注