SSH会话连接超时问题

SSH会话连接超时问题

目前大多数ssh服务是运行在Linux系统上的sshd服务。当访问终端在windows上时,各终端软件,如,putty,SecureCRT等,大多支持设置向服务器端自动发送消息,来防止终端定期超时。其实,服务器端也支持类似的设置,从服务器的角度防止链接超时。并且,当终端在Ubuntu 等Linux系统上时,客户端也可进行类似设置。
下面我们就介绍三种防止超时被踢出的方法,后两种情况的设置方法以及通过设置shell变量来达到此目的的方法:


1、 配置服务器

#vi /etc/ssh/sshd_config

1)找到 ClientAliveInterval参数,如果没有就自己加一行

数值是秒,比如你设置为120 ,则是2分钟
ClientAliveInterval 120

2)ClientAliveCountMax
指如果发现客户端没有响应,则判断一次超时,这个参数设置允许超时的次数。如3 、5等自定义

 
修改两项参数后如下:
—————————-
ClientAliveInterval 120
ClientAliveCountMax 3   ### 0 不允许超时次数
 
修改/etc/ssh/sshd_config文件,将 ClientAliveInterval 0和ClientAliveCountMax 3的注释符号去掉,将ClientAliveInterval对应的0改成60,没有就自己输入。
ClientAliveInterval指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送.而ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.ClientAliveCountMax, 使用默认值3即可.ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开. 正常情况下, 客户端不会不响应.
重新加载sshd服务。退出客户端,再次登陆即可验证。
 
3)重启sshd service
sudo /etc/init.d/ssh restart

2、 配置客户端



#vi  /etc/ssh/ssh_config
然后找到里面的
ServerAliveInterval
参数,如果没有你同样自己加一个就好了
参数意义相同,都是秒数,比如5分钟等

ServerAliveInterval 300

下面是man sshd_config获取的描述信息

 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.  This option applies to protocol version 2
             only.

 ClientAliveCountMax
             Sets the number of client alive messages (see above) which may
             be sent without sshd receiving any messages back from the
             client.  If this threshold is reached while client alive mes-
             sages are being sent, sshd will disconnect the client, terminat-
             ing the session.  It is important to note that the use of client
             alive messages is very different from TCPKeepAlive (below).  The
             client alive messages are sent through the encrypted channel and
             therefore will not be spoofable.  The TCP keepalive option
             enabled by TCPKeepAlive is spoofable.  The client alive mecha-
             nism is valuable when the client or server depend on knowing
             when a connection has become inactive.

             The default value is 3.  If ClientAliveInterval (above) is set
             to 15, and ClientAliveCountMax is left at the default, unrespon-
             sive ssh clients will be disconnected after approximately 45
             seconds.

3、echo export TMOUT=1000000 >> /root/.bash_profile; source .bash_profile
       在Linux 终端的shell环境中通过设置环境变量TMOUT来阻止超时。如果显示空白,表示没有设置, 等于使用默认值0, 一般情况下应该是不超时. 如果大于0, 可以在如/etc/profile之类文件中设置它为0.
Definition: TMOUT: If set to a value greater than zero, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash terminates after waiting for that number of seconds if input does not arrive

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114008.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux 脚本 ll命令,linux中ll命令的详细解释

    linux 脚本 ll命令,linux中ll命令的详细解释linxu下的ll命令其实是ls-l的一个别名。下面由学习啦小编为大家整理了linux的ll命令的详细解释的相关知识,希望对大家有帮助!一、linux中的ll命令的详细解释ll并不是linux下一个基本的命令,它实际上是ls-l的一个别名。Ubuntu默认不支持命令ll,必须用ls-l,这样使用起来不是很方便。如果要使用此命令,可以作如下修改:打开~/.bashrc找到#aliasll…

  • IntelliJ IDEA 报错:找不到包或者找不到符号

    IntelliJ IDEA 报错:找不到包或者找不到符号最近在使用IDEA的时候,突然出现过找不到包或者找不到符号的情况,在确定了自己引用存在的情况下,可以尝试以下几种方式来解决,以下是在开发过程中碰过问题同样解决过的几种办法,在此记录下也分享给大家,希望对各位有帮助。1.利用Maven-Reimport2.InvalidateandRestart3.编码统一4.重新编译点开ProjectStructu…

  • idea下划线怎么去除_word怎么加虚线下划线

    idea下划线怎么去除_word怎么加虚线下划线初次安装使用IDEA,总是能看到导入代码后,出现很多的波浪线,下划线和虚线,这是IDEA给我们的一些提示和警告,但是有时候我们并不需要,反而会让人看着很不爽,这里简单记录一下自己的调整方法,供其他的小伙伴在使用的时候参考。主要有:代码中大量的波浪线,参数和变量下划线,Typo提示,neverused和注释参数名不匹配提示,以及变量初始化多余时提示,形参名的提示。下面是具体操作步骤,如果按照对应的…

  • Java语言中一个字符占几个字节?「建议收藏」

    Java语言中一个字符占几个字节?「建议收藏」要区分清楚内码(internalencoding)和外码(externalencoding)就好了。内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编码;外码是程序与外部交互时外部使用的字符编码。“外部”相对“内部”而言;不是char或String在内存里用的内部编码的地方都可以认为是“外部”。例如,外部可以是序列化之后的char或String…

  • linux安装nodejs环境_ubuntu安装nodejs

    linux安装nodejs环境_ubuntu安装nodejs之前在安装nodejs踩了不少的坑,我结合了之前在网上其他人发的教程,做了补充优化。1.到官网下载与自己系统匹配的nodejs版本中文网站英文网站不知道系统版本号的可以通过uname-a查询系统位数此处下载最新的nodejs也可以下载历史版本,选择自己想要的创建node目录(可以不创建)mkdirnode进去nodejs目录cd…

  • IPV6服务器搭建「建议收藏」

    IPV6服务器搭建「建议收藏」环境准备:1.安装虚拟机(virtualbox)2.在虚拟机中安装Ubuntu系统3.dhcp-4.2.5.tar源码 配置虚拟机环境:1.配置虚拟机gcc命令,快捷键:CTRL

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号