CentOS 7 制作openssh 9.6 rpm包更新修复安全漏洞 —— 筑梦之路

2023年12月18日 openssh 发布新版9.6p1,详细内容阅读OpenSSH: Release Notes

背景说明

之前也写过多篇制作openssh rpm包的文章,为何要重新来写一篇制作openssh 9.6版本的?

openssh 9.6 rpm包制作和之前存在区别,对于CentOS 7来说制作步骤上有一些变化,更何况CentOS 7 在2024年6月将结束生命周期,官方将不再维护支持,因此在这里单独来写一篇记录一下。

有哪些变化呢?

1. 强制要求openssl  1.1.1以上版本

2. 强制要求安装openssl-devel 1.1.1以上版本

这两点也足以说明,逐渐失去对CentOS 7 及以下版本的维护支持。

制作步骤

1. 做好准备工作

centos 7 制作openssh8.7/8.8/8.9/9.0/9.1/9.2/9.3 p1 rpm包升级——筑梦之路_error: package: openssh-9.5p1-1.el7.x86_64 (/opens-CSDN博客

阅读这篇了解整个制作安装流程

CentOS 7 制作openssl 1.1.1w 版本rpm包 —— 筑梦之路-CSDN博客 

阅读这篇制作openssl  1.1.1w rpm包 和 openssl-devel rpm包

CentOS7自制openssh rpm包(含ssh-copy-id命令)—— 筑梦之路_centos7 openssh rpm-CSDN博客

阅读这篇根据需要添加ssh-copy-id命令

2. openssh.spec文件重点地方说明

%if ! %{without_openssl}
BuildRequires: openssl-devel >= 1.1.1
%endif


这段代码中的 `%{without_openssl}` 是一个宏(macro),用于表示是否禁用了 OpenSSL。这个宏的值可以通过在构建RPM包时传递相应的参数进行设置。

如果 `%{without_openssl}` 的值为真(即 OpenSSL 被禁用),则不会执行代码块中的内容。否则,如果 `%{without_openssl}` 的值为假(即 OpenSSL 未被禁用),则会执行代码块中的内容。

在这个例子中,如果 `without_openssl` 为假(即 OpenSSL 未被禁用),则会添加一个构建要求(BuildRequires),要求安装的 OpenSSL 版本大于等于 1.1.1。这意味着在构建包时,必须安装这个指定版本的 OpenSSL 开发库(openssl-devel)。

这段代码的目的是确保在构建RPM包时,当 OpenSSL 未被禁用时,正确指定对 OpenSSL 开发库的依赖。

请注意该代码段中的 `%{without_openssl}` 变量是根据构建环境和参数的不同而变化的,因此需要根据具体的上下文和构建过程设置该变量的值。
9.6版本openssh.spec文件中该段代码(摘自9.5版本)如下:

%if %{compat_openssl}
BuildRequires: compat-openssl10-devel
%else
BuildRequires: openssl-devel >= 1.0.1
#BuildRequires: openssl-devel < 1.1
%endif

 3. openssl的安装

# 安装openssl

rpm -ivh openssl-1.1.1w-1.el7.x86_64.rpm --nodeps --force

# 安装openssl-devel

rpm -ivh openssl-devel-1.1.1w-1.el7.x86_64.rpm --nodeps --force

4. openssh 9.6p1版本rpm制作

rpmbuild -ba openssh.spec

安装测试验证

再次提醒,未经验证不要上生产环境!!!

 有需要已经制作好的rpm包,请查看我的资源。

对于操作系统默认安装了openssl 1.1.1及其以上版本的来说,并不存在该问题。

2023年12月21日

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

贝叶斯判别

参考文献&#xff1a; 6 判别分析 | 多元统计分析示例https://www.cnblogs.com/qizhou/p/13495598.html 一、问题描述 贝叶斯判别的本质是一类分类问题&#xff1a;基于若干采样样本&#xff0c;如何学习一个分类器对新样本数据进行分类并保证分类错误的概率最小。 假设 一…

java并发编程五 ReentrantLock,锁的活跃性

多把锁 一间大屋子有两个功能&#xff1a;睡觉、学习&#xff0c;互不相干。 现在小南要学习&#xff0c;小女要睡觉&#xff0c;但如果只用一间屋子&#xff08;一个对象锁&#xff09;的话&#xff0c;那么并发度很低 解决方法是准备多个房间&#xff08;多个对象锁&#xf…

Windows 11 系统下JDK17的下载与配置

一般地&#xff0c;在做Java项目的时候&#xff0c;我一般喜欢用 Idea 软件来写代码&#xff0c;idea是代码编辑器&#xff0c;JDK是用来翻译写好的代码&#xff0c;两者缺一不可&#xff01;&#xff01;&#xff01; 下面我就来讲一下如何进行JDK17的下载与配置 JDK17的下载…

鸿蒙ArkTS语言介绍与TS基础语法

1、ArkTS介绍 ArkTS是HarmonyOS主力应用开发语言&#xff0c;它在TS基础上&#xff0c;匹配ArkUI框架&#xff0c;扩展了声明式UI、状态管理等响应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨端应用。 JS 是一种属于网络的高级脚本语言&#xff0c;已经被广泛用…

联盟 | Shoplazza X HelpLook,AI技术助推商业效能增长

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;其在各个领域的影响力日益增强。特别是近几年&#xff0c;无论是独立站还是电商平台&#xff0c;都在积极探索利用AI来分析数据以及提升运营效率的方式。 在这场AI技术的浪潮中&#xff0c;Shoplazza 与 Hel…

Jmeter关联操作

1.首先右键添加一个线程选择线程组,命名为线程组-1&#xff0c;添加取样器选择HTTP请求--城市天气 2.线程组-1右键&#xff0c;添加取样器选择后置处理器中的JSON提取器 3.线程组-1右键,添加取样器选择后置处理器中的BeanShell 后置处理程序(必须平级) 4.首先右键添加一个线程选…

JVM启动流程(JDK8)

JVM启动流程(JDK8) JVM的启动入口是位于jdk/src/share/bin/java.c的JLI_Launch函数,其定义如下: int JLI_Launch(int argc, char ** argv, /* main argc, argc */int jargc, const char** jargv, /* java args */int appclassc, const char** appclass…

贵金属入门知识有哪些?

贵金属作为国际知名的理财产品之一&#xff0c;市场人气居高不下&#xff0c;当前由于社会上的不确定分享增加&#xff0c;出于保值避险需求的推动&#xff0c;贵金属迎来了新一波发展高峰。对于刚刚接触贵金属市场的交易者来说&#xff0c;了解贵金属入门知识&#xff0c;做好…

安卓开发学习---kotlin版---笔记(三)

网络 安卓主页的网络框架&#xff1a;OkHttp 在OkHttp的基础上进行封装的&#xff1a;Retrofit框架&#xff0c;更常使用 OkHttp学习 在使用网络请求的时候&#xff0c;先添加网络访问权限&#xff1a; <uses-permission android:name"android.permission.INTERNET&…

vue2 组件传递数据

向子组件传递数据通过Props 1.创建子组件 详细步骤&#xff1a; 1.在components创建子组件 2.等父组件接受到参数后通过Props来接受父组件传递过来的数据 <template><div id"app"><h2>title:{{ title }}</h2><p>tips:{{ tips }}<…

【力扣】148.排序链表

148.排序链表 怎么说&#xff0c;这道题看上去挺简单的&#xff0c;但是要搞清楚的知识点那还真不少&#xff0c;刷题好痛苦&#xff0c;但是要刷&#xff01;嘿嘿~ 首先&#xff0c;要搞懂归并排序&#xff0c;然后是递归。这道题我刚开始想的是递归&#xff0c;但是题友说时…

2023/12/21作业

思维导图 代码 .text .global _start _start: 灯1 gpio时钟使能 [4]->1 0x5000A28 LDR R0,0x50000A28 指定寄存器地址 LDR R1,[R0]将寄存器取出放到R1 ORR R1,R1,#(0x1<<4)将第四位设置为1 STR R1,[R0]读取R0寄存器到R1 PE…

【开源软件】最好的开源软件-2023-第二名: Podman

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

vue3 在vite.config中无法使用import.meta.env.*的解决办法

第一种,优先使用第一种方法,其中参数mode就是自定义--mode的值,如果没写,就是production或development import { loadEnv } from vite export default ({ mode }) > {return defineConfig({plugins: [vue()],base:loadEnv(mode, process.cwd()).VITE_APP_NAME}) } 第二种 …

鸿蒙开发基本概念

1、开发准备 1.1、UI框架 HarmonyOS提供了一套UI开发框架&#xff0c;即方舟开发框架&#xff08;ArkUI框架&#xff09;。方舟开发框架可为开发者提供应用UI开发所必需的能力&#xff0c;比如多种组件、布局计算、动画能力、UI交互、绘制等。 方舟开发框架针对不同目的和技术…

◢Django md5加密与中间件middleware

utils文件夹是重新建立的&#xff08;与migrations同级&#xff09;&#xff0c;该文件夹下主要存放工具&#xff0c;就像static文件夹下只存放静态文件一样 加密 在utils文件夹下建立encrypt.py文件 from django.conf import settings import hashlib def md5(data_string)…

一个正则快速找到在ES中使用profile的时产生慢查询的分片

在es中使用profile分析慢查询的时候&#xff0c;往往因为分片过多&#xff0c;或者因为查询条件太复杂&#xff0c;分析的结果几十万行。在kibana上点半天&#xff0c;也找不到一个耗时长的分片。 kibana上可以通过正则来匹配。其实我们只需要匹配到耗时大于10秒的请求。 检索语…

yolo-nas无人机高空红外热数据小目标检测(教程+代码)

前言 YOLO-NAS是目前最新的YOLO目标检测模型。从一开始&#xff0c;它就在准确性方面击败了所有其他 YOLO 模型。与之前的 YOLO 模型相比&#xff0c;预训练的 YOLO-NAS 模型能够以更高的准确度检测更多目标。但是我们如何在自定义数据集上训练 YOLO NAS&#xff1f; 这将是我…

多媒体信息化建设,动态数据中心,深入理解分布式系统

目录 一、前言二、双活数据中心三、数据备份方式四、设计双活数据中心需要考虑的问题1、延迟和稳定性2、Quorum/ Tie-Breaker3、工作负载 五、动态数据中心六、深入理解分布式系统1、内容介绍2、作者简介 大家好&#xff0c;我是哪吒。 文末送5本《深入理解分布式系统》 一、…

CentOS:Docker容器中安装vim

在使用docker容器时&#xff0c;里边没有安装vim时&#xff0c;敲vim命令时提示说&#xff1a;vim: command not found 这个时候就须要安装vim&#xff0c;安装命令&#xff1a; apt-get install vim 出现以下错误&#xff1a; 解决方法&#xff1a; apt-get update 这个命令的…