Linux ssh远程连接断开问题处理办法解决

 更新时间:2017年03月31日 09:31:37   作者:念槐聚  
本篇文章主要介绍了Linux ssh远程连接断开问题处理办法解决,具有一定的参考价值,有兴趣的可以了解一下。

我们在通过远程连接操作Linux server的时候,有可能过一段时间忘记操作,便会发生ssh断开的问题。

而如果是本地的server,比较好办,直连设备kill掉ssh,踢掉无效用户连接,再次链接即可,但如果是远程server的话,那就比较麻烦。

而使用ssh连接远程服务器的时候,如果长时间没有操作,远程连接就有可能中断。正在执行的程序和vim等缓冲区数据都会丢失。

关于这个问题,下面有几种解决办法,供参考:

echo TMOUT=600 >> ~/.bashrc  或   echo TMOUT=600 >> /etc/profile    设置一个超时的秒数,600秒后终端上没有任何操作便自动断开连接。

或者 修改ssh客户端的配置:给/etc/ssh/ssh_config添加ServerAliveInterval 60

一.在Linux server去设置SSH保持连接时间:

基于安全的理由,如果用户连线到 SSH Server 后闲置,SSH Server 会在超过特定时间后自动终止 SSH 连线。以下是设定终止连线时间的方法:

1、打开 /etc/ssh/sshd_config 文件,找到一个参数为 ClientAliveCountMax,它是设定用户端的 SSH 连线闲置多长时间后自动终止连线的数值,单位为分钟。

2、如果这一行最前面有#号,将那个#号删除,并修改想要的时间。

3、修改后保存并关闭文件,重新启动 sshd:

/etc/rc.d/init.d/sshd restart

4. vim .bash_profile

export TMOUT=1000000

二.保持ssh连接不断开

用ssh连接服务端,一段时间不操作或屏幕没输出(比如复制文件)的时候,会自动断开

解决:(2种办法)

1、在客户端配置

#vi /etc/ssh/ssh_config(注意不是/etc/ssh/sshd_config文件),后面添加

Host *
ServerAliveInterval 30

这表示要让所有的ssh连接自动加上此属性;如果要指定服务端,如下:

使用-o的参数ServerAliveInterval来设置一个防止超时的时间

ssh -o ServerAliveInterval=30 IP地址 

2、在服务端配置

编辑服务器 /etc/ssh/sshd_config,最后增加

ClientAliveInterval 60
ClientAliveCountMax 1

这 样,SSH Server 每 60 秒就会自动发送一个信号给 Client,而等待 Client 回应

三.修改server和连接终端

Linux系统server

在linux系统中使用ssh连接远程服务器时,可以使用-o的一个参数ServerAliveInterval来设置防止超时的时间。

比如:ssh -o serveraliveinterval=60 username@hostIP

服务器配置修改

修改ssh配置文件/etc/ssh/sshd_config,添加或者修改ClientAliveInterval为“ClientAliveInterval 60”。这个参数的是意思是每1分钟,服务器向客户端发一个消息,用于保持连接。保存后记得重启ssh服务。

修改过后,上面几个办法都可以让ssh保持连接,一直处于alive状态,不会因为没有操作而被服务器强制断线了。

终端:

使用SecureCRT连接远程服务器,在会话选项 -> 终端设置中勾选“发送协议 NO-OP”。

使用putty连接远程服务器,找到Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0,改为60。

四.如何退出退出无响应的 SSH 连接

有时候会发现 ssh 挂在那里没有响应了,可能是客户端的问题,也可能是服务器端的问题,也可能是客户端和服务器之间的网络问题;可能是客户端电脑休眠后连接断了、可能是网络断了、可能是 WiFi 信号不好、可能是网络延迟大了、可能是服务器挂了、也可能是服务器上的 sshd 进程挂了,…,可能是技术问题,也可能是非技术问题,可以找出无数可能。

有时我们离开办公桌前忘了退出 ssh 会话,或者工作的时候长时间 ssh 到服务器上忘记断开,之后发现那些没退出的 ssh 会话还挂在那里,无法退出、无法 Ctrl+C、无法做任何操作。通常我们就直接关闭 Terminal 后重新开一个新的;如果用的不是图形系统,没有窗口可以关闭,那还要启用另一个终端找到相关进程后 kill 掉。这里有一个小技巧,在那些没退出的 ssh 会话里用 ~. “优雅” 的断开连接。

可以这样操作:先 按“回车” 换行 再 按“shift + ` ”再按 “. ”

我们man 一下 ssh来看看:

其实Linux本身已经提供了很多便利的操作,只是我们需要多学习。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • linux如何查看nginx启动路径

    linux如何查看nginx启动路径

    这篇文章主要介绍了linux如何查看nginx启动路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Linux命令学习总结之rmdir命令

    Linux命令学习总结之rmdir命令

    这篇文章主要介绍了Linux命令学习总结之rmdir命令的相关资料,需要的朋友可以参考下
    2016-01-01
  • linux系统下的时间配置综述

    linux系统下的时间配置综述

    这篇文章主要给大家介绍了关于linux系统下时间配置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • 图文详解Linux服务器搭建JDK环境

    图文详解Linux服务器搭建JDK环境

    这篇文章主要以图文结合的方式详细介绍了Linux服务器搭建JDK环境的过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 搭建nextcloud私有云存储网盘的教程详解

    搭建nextcloud私有云存储网盘的教程详解

    Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。这篇文章主要介绍了搭建nextcloud私有云存储网盘,需要的朋友可以参考下
    2019-12-12
  • Linux locate命令的使用方法

    Linux locate命令的使用方法

    这篇文章主要介绍了Linux locate命令的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • RHEL7使用ssm命令管理LVM的方法

    RHEL7使用ssm命令管理LVM的方法

    下面小编就为大家带来一篇RHEL7使用ssm命令管理LVM的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Apache HttpClient使用实例详解

    Apache HttpClient使用实例详解

    ApacheHttpClient是一个强大的Java HTTP客户端库,用于发送HTTP请求并处理响应,HttpClients提供了多种方法来创建和配置HTTP客户端实例,本文给大家介绍Apache HttpClient使用示例详解,感兴趣的朋友一起看看吧
    2025-03-03
  • Linux Ubuntu实现查看磁盘剩余空间及内存

    Linux Ubuntu实现查看磁盘剩余空间及内存

    这篇文章主要介绍了Linux Ubuntu实现查看磁盘剩余空间及内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 浅谈三种配置linux环境变量的方法(以java为例)

    浅谈三种配置linux环境变量的方法(以java为例)

    下面小编就为大家带来一篇浅谈三种配置linux环境变量的方法(以java为例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论