在离线 OpenEuler-22.03 服务器上升级 OpenSSH 的完整指南

news2025/5/27 19:19:15

当然可以!以下是一篇结构清晰、语言通俗易懂的技术博客草稿,供你参考和使用:


在离线 OpenEuler-22.03 服务器上升级 OpenSSH 的完整指南

背景介绍

最近在对一台内网的 OpenEuler-22.03 服务器进行安全扫描时,发现其 SSH 版本存在多个高危漏洞,其中甚至包含一个 2024 年披露的 CVE 漏洞。这引起了我们的高度重视。

通过命令查看当前 SSH 版本:

rpm -q openssh

输出结果为:

openssh-8.8p1-32.oe2203sp3.x86_64

而此时 OpenSSH 官方版本已经更新到了 v10,显然我们需要尽快将系统上的 OpenSSH 升级到最新修复版本。

然而,由于该服务器处于内网隔离环境(无网络连接),直接通过 yumdnf 更新是不可能的。而且官方提供的 RPM 包中,只有源码包 .src.rpm 可用,x86 架构的二进制包全部 404。

在这里插入图片描述

在这里插入图片描述

于是我们决定采取“在线编译生成 RPM 包 → 离线安装”的方式完成升级。本文详细记录了整个操作流程与注意事项。


解决思路

由于目标服务器是离线环境,不能直接联网下载依赖或更新包,因此我们采用如下方案:

  1. 在一台具有网络连接的同架构(x86_64)、同系统的机器上,构建 OpenSSH 的 .src.rpm 源码包,生成可用的二进制 .rpm 包。
  2. 将这些 .rpm 包拷贝到目标离线服务器上,进行本地安装。
  3. 验证升级后的 SSH 版本与服务运行状态。

准备工作

下载所需文件

从 OpenEuler 官方镜像站下载最新的源码 RPM 包(确保版本号一致):

openssh-8.8p1-34.oe2203sp3.src.rpm

步骤详解

第一步:安装必要的构建工具

在有网络的机器上,先安装构建 RPM 所需的基础开发工具:

sudo dnf install rpm-build make gcc libtool autoconf automake zlib-devel openssl-devel

如果你无法联网,请提前下载好相关 RPM 包并手动上传安装。


第二步:创建 rpmbuild 工作目录

执行以下命令,创建用于构建 RPM 的标准目录结构:

mkdir -p ~/rpmbuild/{SOURCES,SPECS,RPMS,SRPMS}

第三步:导入 .src.rpm 文件

将下载好的源码包放到 SOURCES 目录下,并安装它以提取 .spec 文件和源代码:

mv openssh-8.8p1-34.oe2203sp3.src.rpm ~/rpmbuild/SOURCES/
rpm -ivh ~/rpmbuild/SOURCES/openssh-8.8p1-34.oe2203sp3.src.rpm

这条命令会自动将 .spec 文件放入 ~/rpmbuild/SPECS/,并将源码解压到 ~/rpmbuild/SOURCES/


第四步:安装构建所需的依赖项

进入 SPECS 目录,尝试安装构建依赖:

cd ~/rpmbuild/SPECS
sudo dnf builddep openssh.spec

如果提示某些依赖找不到,可能需要手动下载对应的 RPM 包并上传安装。


第五步:开始构建二进制 RPM 包

使用 rpmbuild 命令开始构建:

rpmbuild -ba openssh.spec

成功后,你会在 ~/rpmbuild/RPMS/x86_64/ 目录下看到多个生成的 RPM 包,例如:

openssh-8.8p1-34.oe2203sp3.x86_64.rpm
openssh-server-8.8p1-34.oe2203sp3.x86_64.rpm
openssh-clients-8.8p1-34.oe2203sp3.x86_64.rpm
...

第六步:将生成的 RPM 包传输至离线服务器

你可以使用 SCP、U盘、或者任何其他方式将这些 RPM 包传送到目标离线服务器上。


---

### 第七步:在离线服务器上安装 RPM 包

登录离线服务器,解压并安装 RPM 包:

```bash
tar zxvf /root/offline_ssh_rpms.tar
cd /root
rpm -Uvh *.rpm

也可以使用 dnf 安装:

dnf install *.rpm

第八步:验证安装结果

重启 SSH 服务:

systemctl restart sshd

检查新版本:

rpm -q openssh

你应该看到类似如下输出:

openssh-8.8p1-34.oe2203sp3.x86_64

同时可以使用以下命令确认 SSH 实际运行版本:

ssh -V

输出应为:

OpenSSH_8.8p1, OpenSSL 1.xx.x ...

注意事项

  • 备份原配置文件:升级前建议备份 /etc/ssh/ 下的所有配置文件,避免升级过程中被覆盖。
  • 不要中断 SSHD 服务:升级期间请勿关闭或中断 SSH 服务,否则可能导致无法远程登录。
  • 测试环境先行:建议先在测试环境中验证流程后再操作生产服务器。
  • 保留旧包:保留原始的 RPM 包,以便回滚使用。

总结

通过本文的方法,即使是在完全断网的环境下,我们也能够顺利地完成 OpenSSH 的版本升级,有效修复已知的安全漏洞。

整个过程的核心思想是:

在联网机器上构建 RPM 包,再将构建结果拷贝到离线机器上进行安装”。

这种方法不仅适用于 OpenSSH,也适用于其他需要源码编译但又受限于网络的场景,具备良好的通用性和可扩展性。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全能邮箱全能邮箱:实现邮件管理的自动化!

全能邮箱全能邮箱:实现邮件管理的自动化! 全能邮箱全能邮箱的配置教程?如何注册烽火域名邮箱? 全能邮箱全能邮箱作为一种创新的邮件管理解决方案,正逐渐改变我们处理邮件的方式。蜂邮EDM将围绕全能邮箱全能邮箱&…

mysql-tpcc-mysql压测工具使用

在Linux系统上安装和配置tpcc-mysql进行MySQL的TPC-C基准测试,通常涉及以下几个步骤。请注意,由于tpcc-mysql不是一个官方工具,它可能需要从第三方仓库获取,如Percona提供的版本。 前置条件 确保MySQL或MariaDB已安装&#xff1…

Qt找不到windows API报错:error: LNK2019: 无法解析的外部符号 __imp_OpenClipboard

笔者在开发中出现的bug完整报错如下: spcm_ostools_win.obj:-1: error: LNK2019: 无法解析的外部符号 __imp_OpenClipboard,函数 "void __cdecl spcmdrv::vCopyToClipboard(char const *,unsigned __int64)" (?vCopyToClipboardspcmdrvYAXPE…

OpenCv高阶(十七)——dlib库安装、dlib人脸检测

文章目录 前言一、dlib库简介二、dlib库安装1、本地安装(离线)2、线上安装 三、dlib人脸检测原理1、HOG 特征提取2、 SVM 分类器训练3、 滑动窗口搜索4、非极大值抑制(NMS) 四、dlib人脸检测代码1、导入OpenCV计算机视觉库和dlib机…

前端内容黑白处理、轮播图、奇妙的头像特效

1、内容黑白处理 (1)filter:滤镜 可以把包裹的区域中每一个像素点,经过固定的算法转换成另一种颜色来呈现 (2)grayscale:灰阶滤镜 取值范围:0~1取0:原图去1&#xff…

Git - .gitignore 文件

一、.gitignore 文件介绍 在使用 Git 进行版本控制时,.gitignore 文件是一个非常重要的配置文件,用于告诉 Git 哪些文件或目录不需要被追踪和提交到版本库中。合理使用 .gitignore 文件可以避免提交不必要的文件,如临时文件、编译生成的文件…

如何通过API接口实现自动化上货跨平台铺货?商品采集|商品上传实现详细步骤

一、引言:跨平台铺货的技术挑战与 API 价值 在电商多平台运营时代,商家需要将商品同步上架至淘宝、京东、拼多多、亚马逊、Shopee 等多个平台,传统手动铺货模式存在效率低下(单平台单商品上架需 30-60 分钟)、数据一致…

《三维点如何映射到图像像素?——相机投影模型详解》

引言 以三维投影介绍大多比较分散,不少小伙伴再面对诸多的坐标系转换中容易弄混,特别是再写代码的时候可能搞错,所有这篇文章帮大家完整的梳理3D视觉中的投影变换的全流程,一文弄清楚这个过程,帮助大家搞清坐标系转换…

零基础设计模式——结构型模式 - 适配器模式

第三部分:结构型模式 - 适配器模式 (Adapter Pattern) 欢迎来到结构型模式的第一站!结构型模式关注的是如何将类或对象组合成更大的结构,同时保持结构的灵活性和效率。适配器模式是其中非常实用的一个,它能帮助我们解决接口不兼容…

WordPress多语言插件安装与使用教程

WordPress多语言插件GTranslate的使用方法 在wordpress网站后台搜索多语言插件GTranslate并安装,安装完成、用户插件后开始设置,以下为设置方法: 1、先在后台左侧找到Gtranslate,进入到设置界面 2、选择要显示的形式&#xff0c…

欣佰特科技|SenseGlove Nova2 力反馈数据手套:助力外科手术训练的精准触觉模拟

在医疗科技持续发展的背景下,虚拟现实(VR)技术正在改变外科手术培训的方式,而 SenseGlove Nova2 力反馈数据手套 在这一领域发挥着重要作用。 SenseGlove Nova2 力反馈数据手套 与 VirtualiSurg 手术模拟系统深度结合。其手部追踪…

网络安全-等级保护(等保) 3-2-2 GB/T 28449-2019 第7章 现场测评活动/第8章 报告编制活动

################################################################################ GB/T 28449-2019《信息安全技术 网络安全等级保护测评过程指南》是规定了等级测评过程,是纵向的流程,包括:四个基本测评活动:测评准备活动、方案编制活…

IAM角色访问AWS RDS For MySQL

IAM角色访问AWS RDS For MySQL Tips: 写这篇文章,主要是用作记录;在AWS配置IAM RDS 角色权限访问,官方文档不怎么全,踩了一些坑… AWS云上配置 开启IAM身份验证 登录AWS控制台搜索并进入Databases管理页面选择数据库实例&#x…

Karakeep | 支持Docker/NAS 私有化部署!稍后阅读工具告别云端依赖,让知识收藏更有序

Karakeep 介绍 Karakeep(以前的 Hoarder)是一款开源的“Bookmark Everything”应用程序,一款基于 AI 驱动的开源书签管理工具,专为解决传统浏览器书签管理中的混乱问题而设计。其核心目标是通过智能化技术帮助用户高效整理、检索和…

RV1126+FFMPEG多路码流监控项目大体讲解

一.项目介绍: 本项目采用的是易百纳RV1126开发板和CMOS摄像头,使用的推流框架是FFMPEG开源项目。这个项目的工作流程如下(如上图):通过采集摄像头的VI模块,再通过硬件编码VENC模块进行H264/H265的编码压缩,并把压缩后的…

el-dialog 组件 多层嵌套 被遮罩问题

<el-dialog title"提示" :visible.sync"dialogBindUserVisible" width"30%" append-to-body :before-close"handleClose"> <span>这是一段信息</span> <span slot"footer" class"dialog-footer&q…

探秘谷歌Gemini:开启人工智能新纪元

一、引言 在人工智能的浩瀚星空中&#xff0c;每一次重大模型的发布都宛如一颗璀璨新星闪耀登场&#xff0c;而谷歌 Gemini 的亮相&#xff0c;无疑是其中最为耀眼的时刻之一。它的出现&#xff0c;犹如在 AI 领域投下了一颗重磅炸弹&#xff0c;引发了全球范围内的广泛关注与热…

wordcount在集群上的测试

1.将louts.txt文件从cg计算机复制到master节点上面&#xff0c;存放在/usr/local/hadoop 需要输入密码&#xff1a;83953588abc scp /root/IdeaProjects/mapReduceTest/lotus.txt root172.18.0.2:/usr/local/hadoop /WordCountTest/input 2.将lotus.txt文件从master这台机器…

OpenCV CUDA模块图像过滤------创建一个 Sobel 滤波器函数createSobelFilter()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于创建一个 Sobel 滤波器&#xff0c;用于在 GPU 上进行边缘检测。它基于图像的梯度计算&#xff1a; dx 表示对 x 方向求导的阶数&…

PDF 转 JPG 图片小工具:CodeBuddy 助力解决转换痛点

本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 前言 在数字化办公与内容创作的浪潮中&#xff0c;将 PDF 文件转换为 JPG 图片格式的需求日益频繁。无论是学术文献中的图表提取&#xff0c;还是宣传资料的视觉化呈现&am…