0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为何SSH会话不能设置为永不断开?

jf_TEuU2tls 来源:浩道linux 2023-05-08 18:16 次阅读

前言

大家好,这里是浩道linux,主要给大家分享linux、python网络通信相关的IT知识平台。

今天浩道跟大家分享运维工作中常常被大家忽略的SSH会话中断背后的一些知识点!

相信大家在工作中常常遇到通过SSH连接到Linux服务器一段时间后会自动断开了,但是这时候大家往往不去追究其中的原理,只是习惯性在CRT等连接工具中的会话窗口按下回车键再次连接了。本文就让你看看这个断开背后的原理,以及弄清楚其背后的原理后告诉你为什么不能设置永不断开!

1. 概览

有多少次,我们想要保持SSH会话一直处于连接状态,以保持应用程序运行,或者只是避免在返回我们使用的SSH窗口时感到沮丧。在本教程中,你将获得如何通过防止SSH会话超时,直到你关闭终端窗口。

2. 为什么SSH会关闭连接?

我们为了使用SSH登录到服务器上,目的服务器上的守护进程(sshd)一定是保持运行状态。如果SSH客户端一段时间没有发送到目的服务器,服务器会在超过一段时间后关闭连接。

为了防止关闭SSH连接,我们可以在客户端或者服务端进行配置。

3. 设置配置文件

有几个配置文件可以修改,以保持SSH会话的连接,避免超时。要看是从客户端配置还是服务端配置。

3.1 客户端配置

客户端文件位置

$HOME/.ssh/config

如果我们使用使用cat $HOME/.ssh/config,可能会得到一个错误信息 “no file found”。

$ cat $HOME/.ssh/config
cat: /.ssh/config: No such file or directory

如果我们看到这个错误消息,意味着我们需要手动创建这个配置文件。如果.ssh目录不存在,首先创建.ssh目录,使用命令mkdir $HOME/.ssh来创建目录,如果提示目录已经存在,我们将会看到一个消息 “File exists”,请忽略即可;如果目录创建成功,我们不会看到任何输出信息。

$ mkdir $HOME/.ssh
然后创建配置文件touch $HOME/.ssh/config。
$ touch $HOME/.ssh/config

一旦我们创建好配置文件,我们还需要使用chmod修改配置文件的权限,不能让所有人都可以编辑这个配置文件。

$ chmod 600 $HOME/.ssh/config

现在我们可以任何编辑器来编辑这个配置文件了,比如nano或者vim,在终端使用vim $HOME/.ssh/config打开配置文件。

现在让我们来添加一些配置信息到配置文件里面。在vim按i进入编辑模式,然后输入下面的内容:

Host example
    Hostname example.com
    ServerAliveInterval 240

上面的配置信息,仅在SSH会议连接到example这个域的时候才会生效。

ServerAliveInterval设置了客户端在发送保持连接信号之前的等待时间。

然后按ESC键,进入vim的命令模式,连续输入:wq保存退出vim编辑器。

另外可以把example换成*来指定所有的域的配置

Host *
    ServerAliveInterval 240

我们可以使用上面同样的步骤来编辑和保存配置文件。

3.2. 服务端配置文件

在某些情况下,我们可能可以访问服务器上的配置文件。如果是这种情况,我们可以配置何时希望服务器关闭SSH连接。

在服务器上编辑配置文件的过程与客户端配置文件类似,但有一些不同。

首先,服务器端配置文件的文件位置是/etc/ssh/sshd_config;

现在我们使用 vim 把ClientAliveInterval添加到配置文件,注意,这里是"Client"而不是"Server",跟上面客户端的配置是不一样的。

  ClientAliveInterval 60

ClientAliveInterval是以秒为单位指定的超时间隔。如果服务器从客户端接收数据的时间超过了超时间隔,则服务器将向客户端发送请求响应的消息。

3.3. 为什么不设置为从不断开连接?

虽然将SSH会话设置为永不断开可能很诱人,但在某些情况下,我们更明智的做法是为SSH设置超时。

如果我们连接的服务器是我们自己维护的服务器,那么设置超时可能没有充分的理由。然而,如果我们在AWS E3这样的平台上托管我们的服务器,如果我们不设置超时,代价可能会很高。许多云托管平台使用服务器时每分钟收费,即使我们不积极使用SSH会话,保持SSH会话持续运行也会增加成本。

要在客户端上配置超时,我们可以在与上面相同的配置文件中使用ServerAliveCountMax配置项来设置尝试的次数:

Host *
    ServerAliveInterval 240
    ServerAliveCountMax 2

客户端继续每240秒发送一次信号,客户端现在还将侦听来自服务器的信号。如果它两次执行ServerAliveInterval而没有收到信号,它将关闭SSH会话。

同样的,我们可以在服务器上做同样的配置:

  ClientAliveInterval 60
  ClientAliveCountMax 2

注意,服务器上的配置没有Host *的配置项

4. 结论

在本文中,我们学习了如何在客户端和服务器端计算机上创建SSH设置的配置文件。然后,我们研究了哪些配置可以防止SSH会话超时。最后,总结一下我们不应该将SSH会话设置为永不断开的一些原因。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11221

    浏览量

    208882
  • 计算机
    +关注

    关注

    19

    文章

    7412

    浏览量

    87693
  • 服务器
    +关注

    关注

    12

    文章

    9013

    浏览量

    85165
  • SSH
    SSH
    +关注

    关注

    0

    文章

    185

    浏览量

    16296
  • python
    +关注

    关注

    55

    文章

    4779

    浏览量

    84440

原文标题:【运维须知】为何SSH会话不能设置为永不断开?

文章出处:【微信号:浩道linux,微信公众号:浩道linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何实现远程登录ssh并配置开机启动

    今天教论坛的发烧友们如何实现远程登录ssh,并配置开机启动!千万要注意的一点,ssh和ssl不能混淆安装并运行ssh1,安装sshapt-
    发表于 09-12 10:32

    什么是 SSH(secure shell)

    Working Group)所制定;SSH 建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用
    发表于 09-21 18:49

    为何ssh有时能连上派但有时又连不上派?

    求助: 为何有时能用ssh连上树莓派(此时能Ping通IP地址),有时又不能(Ping:无法访问主机); 或者有时过一会就自动断线了,再也连不上去,除非重启树莓派网络服务。 感觉能不能
    发表于 06-28 04:26

    通过网口SSH登录,然后./wifi.sh连接wifi,SSH就被断开了是为什么?

    我通过网口SSH登录,然后./wifi.sh连接wifi,这时SSH就被断开了,通过串口可以看到信息,但此时 SSH就无法登录了,ifconfig发现只有一个wlan0的IP,看不到e
    发表于 01-10 07:35

    怎样去解决ssh连接wifi设置没有成功的问题

    使用fcu1101自带系统,lsmod 出现8723bu,说明驱动加载,用wifi.sh配置wifi时,ssh连接断开,再也连不上了。只能重新启动,用ssh连接后,检查wifi设置没有
    发表于 01-11 07:37

    iTOP-RK3568开发板MobaXterm的安装教程

    会话设置」 对话框。由上面那一大串的连接方式我们就可以知道 MobaXterm 的强大之处,如下图所示:然后会弹出会话设置对话框,我们点选第一个
    发表于 05-05 10:28

    对目前流行的ssh密码暴力破解工具进行实战研究、分析和总结

    Group)所制定;SSH 建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
    的头像 发表于 01-29 15:10 5.4w次阅读
    对目前流行的<b class='flag-5'>ssh</b>密码暴力破解工具进行实战研究、分析和总结

    设置面向LSF 和SSH 的远程服务器群设备

    使用 DSE II 在 Quartus Prime 中设置面向 LSF 和SSH 的远程服务器群设备
    的头像 发表于 06-22 04:37 4197次阅读
    <b class='flag-5'>设置</b>面向LSF 和<b class='flag-5'>SSH</b> 的远程服务器群设备

    SSH服务器应用程序免费下载

    SSH Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 建立在应用层基础上的安全协议。
    发表于 11-25 08:00 1次下载
    <b class='flag-5'>SSH</b>服务器应用程序免费下载

    解决IAR不能设置断点的问题

    如何解决IAR不能设置断点的问题
    的头像 发表于 03-20 10:03 1.3w次阅读
    解决IAR<b class='flag-5'>不能</b><b class='flag-5'>设置</b>断点的问题

    如何防止SSH会话断开连接

    SSH连接经常会在几分钟不活动之后,出于安全原因,将会自动断开连接。通过修改一下命令可以让回话保持连接状态。
    的头像 发表于 12-28 09:39 1131次阅读

    SSH第1部分:配置SSH以安全连接到远程设备

    ® /UNIX 环境和网络设备建立安全的命令行会话。随着物联网 (IoT) 设备的激增,设置 SSH 以启用安全登录比以往任何时候都更有用。
    的头像 发表于 01-03 09:45 1220次阅读

    保持SSH会话不掉线

    如果我们看到这个错误消息,意味着我们需要手动创建这个配置文件。如果 .ssh 目录不存在,首先创建 .ssh 目录,使用命令 mkdir $HOME/.ssh 来创建目录,如果提示目录已经存在,我们将会看到一个消息 “File
    的头像 发表于 05-05 10:41 2480次阅读

    地平线旭日X3派试用 | ssh密钥登陆 蓝牙手柄连入ros

    SSH建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题……
    的头像 发表于 12-08 16:18 1092次阅读
    地平线旭日X3派试用 | <b class='flag-5'>ssh</b>密钥登陆 蓝牙手柄连入ros

    Serial、SSH、Rlogin、Telnet、Raw协议介绍

    SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的文件传输协议。建立在应用层和传输层基础上。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
    的头像 发表于 12-05 09:55 2682次阅读