SSH链接自动断开问题探究

本身关于SSH链接断开问题的一些探究。linux


更新2018-03-12
修改sshd_config的keep alive配置没有生效。以前确认的问题缘由非真正致使链接断开的缘由。使用ssh链接断开的提示信息“timed out waiting for input: auto-logout。”搜索,一篇英文文档说明了TMOUT环境变量做用,该变量是系统检测session空闲时间,若是TMOUT未赋值,则auto-logout功能关闭,即session不会空闲超时关闭;若是设置TMOUT的值,好比TMOUT=300,auto-logout检测session输入,若300s内无输入关闭session自动退出。
TMOUT变量在如下几个文件中会有定义:/etc/profile(全局)或./profile或./bash_profile,其中全局定义的TMOUT会被局部定义的TMOUT覆盖。
echo $TMOUT显示环境变量查看当前超时时间为300s,定义在/etc/profile中,将TMOUT设置为86400(24h),source从新读取配置文件,新建的session 30min内无输入也没有关闭,至此问题解决。web


新安装的OS,SSH配置遇到若干问题,第一个问题:root登陆失败,用web登陆正常,ssh登陆提示denied,上网搜寻ssh配置项“PermitRootLogin”默认是no,修改成yes后重启SSH服务,解决。
第二个问题至关棘手,SSH链接几分钟未操做,会自动断开,上网搜索连篇累牍关于keep alive的说明,所有都是配置“ClientAliveInterval”和“ClientAliveCountMax”,修改后重启SSH,没有任何用处,一段时间不操做,链接该断仍是断,怀疑网上的配置有误。仔细想一想这么多的文章都提到keep alive,问题应该是这里,keep alive选项没有生效,可能不是SSH保活机制问题,而是网络链接机制问题。把sshd_config的配置从头至尾看了一遍,发现有一个“TCPKeepAlive”的选项,搜索了该选项的说明,ClientAlive是SSH发出是加密选项,TCP Alive是协议栈发出,非加密信息,安全性下降。
同时搜索了网上ssh tcp keep alive,有个博文提到,linux的防火墙会检测网络链接,若是没有流量,触发规则防火墙会断开TCP链接,TCP链接终止后,SSH客户端检测链接异常天然没法运行,这才是client keep alive没法生效的根本缘由。
从安全角度来讲,SSH链接空闲后自动断开,是合理的,对于开发者此行为不方便调试,探究到根本缘由,咱们须要作的就是适应场景。
手上有几台服务器,CENTOS的服务器没有相似问题,当前这个小众的服务器才有,对比了两个OS的SSH默认配置,CENTOS没有配置keep alive但不会空闲断开。防火墙相关的配置网上没找到,后续碰到再研究。安全

相关文章
相关标签/搜索