当前位置:

首页 > 编程开发 > Yum软件包签名验证怎么操作

Yum软件包签名验证怎么操作

Yum签名验证通过配置gpgcheck=1启用,导入GPG公钥后,安装更新自动校验。本地RPM包可用rpm-K验证签名。签名失败需检查公钥、路径或系统时间;禁用--nogpgcheck存在安全风险,需谨慎使用。

在Linux系统管理和运维中,软件包的签名验证是保证系统安全的重要一环。今天,我们就来聊聊Yum软件包管理器的签名验证应该怎么操作。这部分内容其实并不复杂,但确实有几个关键点需要注意,尤其是当你在管理多台服务器、使用第三方仓库时。

Yum软件包签名验证怎么操作

启用与配置签名验证

Yum的签名验证机制,本质上是让系统在安装或更新软件包之前,先检查一下这个包是否来自可信的发布方,是否被篡改过。这就像快递员送包裹前先核对一下寄件人的身份和包裹的封条。

全局层面,需要在 /etc/yum.conf 中设置 gpgcheck=1。这样一来,所有仓库的安装和更新操作都会自动触发签名校验。

[main]
gpgcheck=1

更精细的配置在仓库层面。每个 /etc/yum.repos.d/*.repo 文件里的仓库段,都需要独立设置 gpgcheck=1,并通过 gpgkey 指定公钥的位置。这个公钥可以是本地文件路径,也可以是远程URL。

[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

值得一提的是,部分第三方仓库还提供了 repo_gpgcheck=1 选项,用于验证仓库元数据本身的签名。如果对安全性要求较高,可以按需开启。以上配置都是Yum的标准做法,默认情况下系统就会进行签名校验。

导入GPG公钥

光配置好了签名校验还不行,你得先把对应的公钥导入到系统里。公钥就像是“钥匙”,Yum用它来解包签名、验证身份。

导入系统发行版的密钥很简单。比如RHEL/CentOS 7:

sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Fedora用户则根据版本选择对应的密钥文件:

sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-

第三方仓库的导入方式也类似,以RabbitMQ和Modern Erlang仓库为例:

sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sudo rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey
sudo rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey

公钥只需要导入一次。后续安装或更新软件包时,Yum会自动使用已导入的公钥进行校验——前提是该公钥与软件包的签名能对上。

安装与更新的签名校验

当 gpgcheck=1 配置到位,且正确的公钥已经导入后,日常的安装和更新操作就变得非常透明。Yum会自动完成签名校验,你甚至感觉不到它的存在:

sudo yum install 
sudo yum update

如果需要只进行安全相关的更新,也可以使用 --security 参数:

sudo yum check-update --security
sudo yum update --security

唯一需要警惕的是那个 --nogpgcheck 选项,它允许跳过签名校验。这个选项存在的意义是应急,但强烈不建议在生产环境中使用。如果签名校验失败,意味着软件包可能被篡改或来源不可信,此时应该停下来排查原因,而不是直接绕过检查。

sudo yum install  --nogpgcheck

一句话总结:Yum默认启用签名验证,而签名失败就是安全报警。

对本地RPM包进行签名校验

有时候我们会手动下载RPM包进行安装。这种情况下,可以使用 rpm 工具直接校验:

rpm -K 
rpmkeys --checksig 

期望的输出中应该包含 OK 或 Good signature 等字样。如果看到 NOT OK 或 BAD signature,那就说明这个包有问题,不要安装。

对于非RPM的源码包(如 .tar.gz),很多项目会同时提供一个 .sig 签名文件。这时候可以用GPG来校验:

gpg --verify 

如果系统没有自动找到数据文件,也可以显式指定:

gpg --verify  

当然,在执行这些操作之前,先要确保已经导入了对应项目的公钥。

常见问题与排查

签名验证失败是运维中经常遇到的情况。遇到 GPG signature verification failed 时,可以从几个方面入手排查:

  • 是否导入了正确的公钥?
  • 仓库配置中的 gpgkey 路径是否正确?
  • 系统时间是否准确?时间偏差过大也会导致签名验证失败。

第三方仓库的情况会更复杂一些。比如RabbitMQ,它需要导入多个密钥,并且建议同时开启 repo_gpgcheck=1 和 gpgcheck=1。这相当于上了双重保险。

修改仓库配置或密钥之后,最好清理并重建一下Yum的元数据缓存:

sudo yum clean all
sudo yum makecache

最后,一个非常现实的安全建议:在生产环境中,不要长期关闭 gpgcheck。如果实在需要临时绕过,请在安装完成后立即恢复配置,并重新校验已安装的软件包。安全这根弦,松不得。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Linux
上一篇: GCC如何调试C程序
相关文章 更多
linux删除用户与用户组的方法及命令教程
linux删除用户与用户组的方法及命令教程

掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
IntelliJ IDEA macOS版
IntelliJ IDEA macOS版
Mac

IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

PyCharm macOS版
PyCharm macOS版
Mac

JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

WebStorm macOS版
WebStorm macOS版
Mac

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

WINDOWS 更多
IntelliJ IDEA Windows版
IntelliJ IDEA Windows版
Windows

JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

PhpStorm Windows版
PhpStorm Windows版
Windows

PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

PyCharm Windows版
PyCharm Windows版
Windows

PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,