如何保持 SSH 连接

6 views
Skip to first unread message

xibo ning

unread,
Mar 2, 2010, 8:23:06 AM3/2/10
to linu...@googlegroups.com
问题
我们在 SSH 登上一个机器之后,如果一段时间内,没有任何指令导致 Client 和 Server
端有数据传递的话,则经常会出现:Connection reset by peer 的出错提示,然后中断与 Server 的连接。

这个现象让人很不爽:

* 影响了人工作的连续性,让人心情不好

* Server 端的 sshd 不会正常退出,如果你碰巧在 vim 一个文件的话,vim 也不会正常退出,等于是在 Server
端留下了一堆 dirty 的东西
解决方案
很明显,我们需要一个方案,让 Client 与 Server 定时有一些数据交互,以保持连接的稳定性。和大部分 Client/Server
架构的程序一样,我们可以在 Server 或者 Client 这二者之任意一端,解决这个问题。
[编辑] 在 Server 端配置

在 /etc/ssh/sshd_config 中配置

ClientAliveInterval 2
ClientAliveCountMax 10000000

在 Client 端配置
在 /etc/ssh/ssh_config 中配置

ServerAliveInterval 2
ServerAliveCountMax 10000000

TCPKeepAlive 是做什么的

这个选项的默认值就是 yes 。

顾名思义, TCPKeepAlive 是让 Client/Server 在 TCP 协议层定期有一定的数据交互。而这个并不能保证我们的
ssh 连接不会被 reset 。

Reply all
Reply to author
Forward
0 new messages