如何解决SSH连接Linux超时自动断开?
封面图
•
2025-12-02
•
Linux
254
0
0
0
SSH 连接 Linux 服务器时,如果长时间没有操作,可能会因为超时自动断开。这是系统默认的安全设置,防止未使用的连接占用资源。要解决这个问题,可以通过以下几种方式来调整或关闭超时断开机制: --- ## ✅ 方法一:修改 SSH 客户端配置(本地) 如果你使用的是 `ssh` 命令连接远程服务器,可以在本地配置文件中设置保持连接。 ### 1. 编辑 SSH 客户端配置文件 ```bash sudo nano ~/.ssh/config ``` ### 2. 添加以下内容(根据需要调整) ```bash Host * ServerAliveInterval 60 ServerAliveCountMax 3 ``` - `ServerAliveInterval 60`:每 60 秒向服务器发送一次“存活”信号。 - `ServerAliveCountMax 3`:如果连续 3 次没有收到响应,则断开连接。 保存后退出,重新连接即可生效。 --- ## ✅ 方法二:修改 SSH 服务端配置(远程服务器) 如果你有权限修改远程服务器的 SSH 配置,可以调整 `sshd_config` 文件。 ### 1. 编辑 SSH 服务端配置文件 ```bash sudo nano /etc/ssh/sshd_config ``` ### 2. 添加或修改以下内容 ```bash ClientAliveInterval 60 ClientAliveCountMax 3 ``` - `ClientAliveInterval 60`:服务器每 60 秒检查客户端是否活跃。 - `ClientAliveCountMax 3`:如果连续 3 次未收到响应,则断开连接。 ### 3. 重启 SSH 服务 ```bash sudo systemctl restart sshd # 或者 sudo service ssh restart # 根据系统不同 ``` --- ## ✅ 方法三:使用 `nohup` 或 `tmux` 等工具保持连接 如果你无法修改服务器配置,可以使用以下方法保持连接不被断开: ### 1. 使用 `tmux` 或 `screen` 安装并使用 `tmux` 或 `screen` 可以在断开后恢复会话: ```bash sudo apt install tmux # Debian/Ubuntu sudo yum install tmux # CentOS/RHEL ``` 然后运行: ```bash tmux new -s mysession ``` 即使 SSH 断开,也可以重新连接并恢复会话。 ### 2. 使用 `expect` 脚本模拟输入 编写一个简单的脚本定期发送空命令,防止超时: ```bash #!/bin/bash while true; do ssh user@remote-server "echo 'keepalive'" sleep 59 done ``` --- ## ✅ 方法四:使用 `autossh` 工具 `autossh` 是一个用于监控和重新连接 SSH 的工具,可以自动重连断开的连接。 ### 安装 autossh ```bash sudo apt install autossh # Debian/Ubuntu sudo yum install autossh # CentOS/RHEL ``` ### 使用示例 ```bash autossh -M 20000 -f -N -L 2222:localhost:22 user@remote-server ``` --- ## ✅ 总结 | 方法 | 适用场景 | 优点 | |------|----------|------| | 修改客户端配置 | 你有权限修改本地 SSH 配置 | 简单、无需服务器权限 | | 修改服务端配置 | 你有服务器管理员权限 | 适用于长期稳定连接 | | 使用 `tmux` / `screen` | 无法修改配置时 | 保持会话不中断 | | 使用 `autossh` | 需要自动重连 | 自动维护连接 | --- 如有需要,我可以帮你生成具体的配置文件或脚本。欢迎继续提问!
上一篇:
【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable
下一篇:
linux下怎么退出telnet
标题录入,一次不能超过6条
留言
评论