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日

 

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
制作 OpenSSH 和 OpenSSL RPM 的步骤大致如下: 1. 下载 OpenSSH 和 OpenSSL 的源代码。 2. 安装 RPM工具及其依赖项。例如,在 CentOS 或 Red Hat 系统中,可以使用以下命令安装: ``` yum install rpm-build rpmdevtools ``` 3. 创建 RPM环境。在终端中运行以下命令: ``` rpmdev-setuptree ``` 4. 将 OpenSSH 和 OpenSSL 源代码放置到 RPM环境的 `SOURCES` 目录中。 5. 创建 RPM 的描述文件 `SPEC`。在此文件中,定义了 RPM 的基本信息、依赖关系、安装、卸载、配置等操作。可以使用文本编辑器创建 `SPEC` 文件。 6. 构建 RPM 。在终端中运行以下命令: ``` rpmbuild -ba /path/to/your.spec ``` 其中 `/path/to/your.spec` 是 `SPEC` 文件的路径。在构建 RPM 的过程中,会自动执行编译、打、签名、生成元数据等操作。 7. 查看生成的 RPM 。在 RPM环境的 `RPMS` 目录中,会生成两个版本的 RPM :一个是源代码 RPM(SRPM),另一个是二进制 RPM。可以使用以下命令查看生成的 RPM : ``` ls ~/rpmbuild/RPMS/x86_64/ ``` 其中 `x86_64` 是系统架构,可以根据实际情况进行调整。 8. 安装 RPM 。在终端中运行以下命令: ``` rpm -ivh /path/to/package.rpm ``` 其中 `/path/to/package.rpm` 是 RPM 的路径。安装完成后,可以使用以下命令验证安装是否成功: ``` rpm -qa | grep package ``` 其中 `package` 是 RPM 的名称。如果成功安装,会输出 RPM 的版本号;否则,什么都不会输出。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值