分类: BSD
2007-11-21 16:27:15
注:本文转载自 再转自
国内的ISP以及服务器托管机房(IDC)在网络上的限制越来越多,从先前的屏蔽扫描信号、禁止Traceroute,到现在开始中断长时间空闲TCP连接。
如果你SSH到远程服务器,长时间不操作的话,很容易被掐掉,这个东西真的很讨厌的,比如你在升级系统,正好升级脚本需要管理员手工确认一个东西,而你由于忙于其他事物疏忽这个东西,等你回过来,连接已经中断,没法操作,只能重新开启连接后重新开始。如果是必须一次完成的操作,这个时候会引起严重后果。
OpenSSH有一个 ClientAliveInterval 参数,在你的 sshd_config 配置文件中设置一个合适的值,比如:
ClientAliveInterval 15
ClientAliveInterval 的单位是秒!
另外还一个参数 ClientAliveCountMax。功能是,如果 ssh client 对服务器发出的防呆信号没有回复的最大次数。
因此,前者设置为15,后者设置为 3 的时候,如果你的ssh client没有回复sshd 的防呆信号,45 秒后sshd自动断链接。
就可以让 OpenSSH 服务器端在空闲的时候定时向客户端请求一个数据包。另外, man sshd_config 可以看到,这个参数只在 SSH protocol version 2 中有效(不过,为了安全起见,早就应该使用 SSH2 了)。