【ssh】保持SSH会话在线(不掉线)

news/2025/3/6 17:58:13/文章来源:https://www.cnblogs.com/o-O-oO/p/18739483

一、概览

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

二、为什么SSH会关闭连接?

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

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

三、设置配置文件

有几个配置文件可以修改,以保持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 exampleHostname example.comServerAliveInterval 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 240ServerAliveCountMax 2

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

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

ClientAliveInterval 60
ClientAliveCountMax 2

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

结论

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894724.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts如何分别设置PC端图表标题显示和移动端显示?

Echarts绘制图表的时候,PC端界面较大,可以很好的展示,但是移动端界面较窄,需要调整,所以分开设置就要用到 media方法: 实例: 移动端: 源码设置: 注意:media需要设置在series同级; 源码:media: [{query: {maxWidth: 767 // 假设移动设备的最大宽度是767px},option: …

【Webshell不出网】reGeorg和Pystinger的使用

reGeorg+Proxifier: 在实战情况下有时会遇到外网Getshell准备内网渗透的时候发现目标机器不出网,所以就会用映射,代理..等等方式进行上线。 reGeorg项目地址为: https://gitcode.net/mirrors/sensepost/reGeorg?utm_source=csdn_github_acceleratorProxifier地址: https:…

【测试】钩子测试

图片钩子测试 仅收集了访问数据,未使用任何js信息,未窃取任何cookie 只用于匿名数据收集,以及,好玩。

什么!GIS地形与数字孪生结合,竟然能做出如此有趣的效果!

山海鲸可视化支持添加ArcGIS和Cesium地形,并且添加后的GIS地形能够完美与整个数字孪生系统进行融合。同时,我们也可以对GIS地形进行编辑,通过鼠标点击圈选编辑区域,可以将区域内的地形压平、抬升或下沉,结合数字孪生能够实现许多有趣的效果。下面我们就来看看,如何在山海…

中国PostgreSQL考试认证体系

中国PostgreSQL考试认证体系 一、关于举办PostgreSQL研修与评测的通知 为深入贯彻党的二十大和全国新型工业化推进大会精神,落实《关于加强和改进工业和信息化人才队伍建设的实施意见》等文件精神,由北京神脑资讯技术有限公司主办的PostgreSQL数据库管理人才研修与评测班将于…

模型上新!来通义灵码体验 QwQ-32B 推理模型!

通义灵码目前已经支持 QwQ-plus 模型,欢迎大家在【智能问答】里,选择切换模型,即可体验更小尺寸、更强性能的新模型!今天,阿里云发布并开源全新的推理模型通义千问QwQ-32B。通过大规模强化学习,千问QwQ-32B在数学、代码及通用能力上实现质的飞跃,整体性能比肩DeepSeek-R…

python install spacy 报错解决

python install spacy 法1 修改setuptool版本(无效)法2 安装前置依赖(无效)pip install numpy cython jinja2 pathlib preshed thinc cymem murmurhash blis plac 法3 使用预编译的轮子文件安装(有效)pip install --prefer-binary spacy

可视化大屏出圈密码: 地图组件深度解析

01 组件介绍 在数据可视化大屏搭建中,地图组件是使用最频繁且重要的组件之一。它不但能直观展现地理方位相关信息,还能通过与标记点、飞线、图表等各类组件巧妙搭配,达成更加多元、生动的数据呈现效果,在众多行业领域都得到了广泛应用。鉴于其强大的适配能力,面对包含地理…

.NET 9.0 全栈技术的高效开源低代码平台(Vue3+Element-Plus)

前言 推荐一款基于.NET 9.0 全栈框架的新一代技术架构(Vue3+Element-Plus),开源低代码平台-Microi吾码。 平台不仅无限制地支持用户数、表单数、数据量及数据库数量,还通过跨平台兼容性实现了对多种开发语言的支持,并确保了在不同数据库间的无缝操作。 它还具备分布式部署…

Hula项目部署(桌面即时通讯应用程序)

后端项目部署: HuLaSpark/HuLa-Server: ☕️ HuLa 服务端,基于SpringBoot3 + Netty + MP + RocketMQ docker-compose.yml没有修改,有需要的话自行调整即可,我这里只是为了演示。 以下的命令在linux下运行,且windows可以直接访问 docker-compose up -d 直接拉取镜像启动存储…

linux核心命令

1、查询帮助命令 man ls help info2、文件和目录操作命令 ls # 仅了列出当前目录可见文件 ls -l # 列出当前目录可见文件详细信息 ls -hl # 列出相信信息并以可读大小显示文件大小 ls -al # 列出所有文件(包含隐藏)的详细信息 ls --human-r…

软工作业2-个人项目

项目地址 YiLaiL的个人项目 PSP表格PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)Planning 计划 10 30 Estimate估计这个任务需要多少时间 10 30Development 开发 455 640 Analysis需求分析 (包括学习新技术) 30 120 Design Spec生成设计文…