Redian新闻
>
保持SSH会话不掉线

保持SSH会话不掉线

公众号新闻

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/configcat: /.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会话设置为永不断开的一些原因。

(版权归原作者所有,侵删)



微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
人狠话不多,社会我胡哥:斯塔尔报告是否可以重现江湖?[外刊] 美国人数秒时为啥说 Mississippi(密西西比)?香港没有死刑,蔡天凤碎尸案的4位凶手最多就是关几年“搭子”社交:上班无话不谈,下班无话可谈离婚6年后,马蓉的“遮羞布”,终究被儿子王子豪亲手扯下医生打电话不看诊,患者家属:她在聊拆迁小心!注意登机牌上的这些神秘代码!出现"SSSS"麻烦大了!第一次做欧洲之星,我有几句话不知当不当讲​广州地铁大叔被诬偷拍事件,有几句话不吐不快!来美旅客注意!登机牌若出现“SSSS”字样 麻烦大了柴油泄漏替换被污染泥土;Issaquah市打算把雨水排放到Issaquah Creek和Lake Sammamish等水域「搭子」社交:上班无话不谈,下班无话可谈给我20年,还你一个强大的俄罗斯。——这话不是普京说的【新卡发布,$100 开卡奖励,送一年 DashPass 会员】Chase DoorDash 信用卡Bash 基础知识系列 #1:创建并运行你的第一个 Bash Shell 脚本 | Linux 中国行事不可任心,说话不可任口小心!注意登机牌上的神秘代码!出现"SSSS"麻烦大了!Ubuntu衍生版新星:支持Flatpak、不支持Snap冰岛雷克雅未克(Reykjavík),街头建筑来美旅客注意!登机牌若出现“SSSS”字样,麻烦大了!华人帮朋友带物品回国,海关发现后竟被判死刑!怎么回事?高效利用多级用户意图,港科大、北大等提出会话推荐新模型Atten-MixerOn The Table at Two Sessions, Employment, Cross-Border Trade清北学生免费游政策有变?淄博官员:并不是要说话不算话,而是……[语法] disease, sickness 和 illness 都表示“病”,如何区分?关于小学生规划高考英语,有句话不知当讲不当讲赴美旅客注意了!登机牌若出现“SSSS”,你可能被盯上了!真正的自律:事不拖,话不多,人不躁揭秘20年前唐国强前妻离去之谜,留遗书要女儿复仇,真相令人震惊全程4小时!墨尔本有一条“魔鬼”公交线路,今天,华人司机有些话不吐不快!美国为何死咬住中国不放?YYDS!一分钟解决你ChatGPT经常掉线的问题中产「作死三件套」?冯仑:话不能这么讲3万美金奖金|KDD CUP 2023 多语言购物会话推荐数据竞赛正式启动外网爆火!斯坦福内部Essay课流出,留学生:论文只得Pass原因找到了…旅客警惕登机牌出现“SSSS”字样
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。