避免SSH连接因超时闲置断开

此页由Linux Wiki用户Chenxing于2012年2月5日 (星期日) 03:14的最后更改。

出自Linux Wiki

提示:此文已超过 12 年(4708 天)未更新,如发现内容过时或有误,欢迎改进:)

SSH过程连接电脑时,经常遇到长时间不操作而被服务器踢出的情况,常见的提示如:

Write failed: Broken pipe

这是因为如果有一段时间在SSH连接上无数据传输,连接就会断开。解决此问题有两种方法。[1]

方案一:在客户端设置

方法很简单,只需在客户端电脑上编辑(需要root权限)/etc/ssh/ssh_config,并添加如下一行:

ServerAliveInterval 60

此后该系统里的用户连接SSH时,每60秒会发一个KeepAlive请求,避免被踢。

方案二:在服务器端设置

如果有相应的权限,也可以在服务器端设置,即编辑/etc/ssh/sshd_config,并添加:

ClientAliveInterval 60

重启SSH服务器后该项设置会生效。每一个连接到此服务器上的客户端都会受其影响。应注意启用该功能后,安全性会有一定下降(比如忘记登出时……)

参考资料

  1. How to fix ssh timeout problems(英)

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换