本文记录了 Windows 系统上使用 Terminal 终端 SSH 连接 Linux 服务器时,出现自动断开连接问题的详细解决过程。
前言
Windows 系统上连接 Linux 服务器时,可以选择系统自带的 SSH 服务进行连接,无需额外下载安装 PUTTY 、 Xshell 等软件。
但是有个问题,Terminal 终端 SSH 连接 Linux 服务器无操作一段时间后,Terminal 终端会卡死然后提示连接退出。
本文就记录了该问题的解决方式。
Windows 系统版本为 Windows 11 家庭版,22H2。
解决方式
以下提供了两种解决方式,任选一种即可(全都要也不是不可以)。
方式一
此方式为针对 Windows 端或发起 SSH 连接请求方客户端的操作。
- 每次 SSH 连接时,添加
-o ServerAliveInterval=60
参数,如ssh -o ServerAliveInterval=60 root@192.168.1.5
Windows 的 Terminal 终端可以配置每次打开终端时需要执行的命令,而无需每次手动输入
方式二
此方式为针对被 SSH 连接的 Linux 服务器端的操作。
- 使用
vi
编辑 Linux 服务器上的/etc/ssh/sshd_config
文件vi /etc/ssh/sshd_config
- 将
ClientAliveInterval
行取消注释,并将值设为 60- 以下为修改后的结果,部分内容省略
...... #Compression delayed ClientAliveInterval 60 #ClientAliveCountMax 3 #ShowPatchLevel no ......
- 以下为修改后的结果,部分内容省略
总结
以下为 Manual Page Search Parameters 页面对上述两个参数的描述。
- ServerAliveInterval : Sets a timeout interval in seconds after which if no data has been received from the server, ssh will send a message through the encrypted channel to request a response from the server. The default is 0, indicating that these messages will not be sent to the server.
- ClientAliveInterval : Sets a timeout interval in seconds after which if no data has been received from the client, sshd will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client.
对于个人服务器而言,选择哪种解决方式都是可以的,无需纠结。