在 Ubuntu 终端使用 ssh 连接服务器,经常遇到长时间不进行操作,终端页面没反应,只能关闭重新打开,类似卡死的状态.

一种解决方式是使用 screen 工具,保持后台运行.

Ubuntu - screen 命令工具 - AIUAI

此外,还从网络上找到两种解决方案.

[1] - 方案一:服务器端(Server)操作

在服务器端编辑 sshd 的配置文件 - /etc/ssh/sshd_config,在后面增加如下内容:

ClientAliveInterval 60
ClientAliveCountMax 1

其作用是:SSH Server 每 60秒就自动发送一个信号到客户端(Client),而等待 Client 回应.

[2] - 方案二:客户端(Client)操作

在客户端编辑 ssh 的配置文件 - /etc/ssh/ssh_config (请注意与服务器端配置文件是不同的.),在后面增加如下内容:

TCPKeepAlive yes
ServerAliveInterval 300

其中,TCPKeepAlive yes 表示保持连接;ServerAliveInterval 300 表示每 300秒就自动发送一个数据包到服务器(Server).

如果没有 root 权限,可以修改或创建 ~/.ssh/ssh_config 文件,增加的内容如上一致.

或者,采用终端运行时添加参数的方式,如:

ssh -o TCPKeepAlive=yes -o ServerAliveInterval=300 username@IP
Last modification:October 21st, 2019 at 05:05 pm