0

0

如何验证Linux软件包完整性 rpm校验和GPG检查指南

P粉602998670

P粉602998670

发布时间:2025-07-29 11:53:01

|

998人浏览过

|

来源于php中文网

原创

要验证linux系统中rpm包的完整性与真实性,可采用以下方法:1. 使用rpm -k package.rpm校验包的sha256和gpg签名,输出“ok”表示未被篡改;2. 导入官方gpg公钥以确认软件来源可信,再次运行rpm -k验证签名有效性;3. 配置yum/dnf启用自动gpg检查,在仓库配置文件中设置gpgcheck=1和repo_gpgcheck=1确保安装时自动验证;4. 使用rpm -va检测已安装包是否被修改,通过输出字段判断文件变动情况。合理配置后,大部分验证流程可自动化完成,有效保障系统安全。

如何验证Linux软件包完整性 rpm校验和GPG检查指南

Linux系统中安装的软件包一旦被篡改,可能带来严重的安全隐患。验证软件包完整性是防范恶意软件的第一道防线,尤其是使用RPM包管理器的系统,比如CentOS、Fedora和RHEL。下面介绍几种实用的方法来校验RPM包的完整性和真实性。

如何验证Linux软件包完整性 rpm校验和GPG检查指南

1. 使用rpm命令进行本地校验

在安装或更新RPM包之前,可以通过rpm命令对软件包本身进行基本校验,主要是检查包的头部信息和签名是否损坏。

操作方法:

如何验证Linux软件包完整性 rpm校验和GPG检查指南
rpm -K package.rpm

这条命令会输出类似以下内容:

package.rpm: sha256 gpg OK
  • sha256 OK 表示包的数据摘要没有问题。
  • gpg OK 表示GPG签名有效(前提是已导入对应公钥)。

如果看到 NOT OK 或者 BAD 字样,说明这个包可能被篡改过,不建议安装。

如何验证Linux软件包完整性 rpm校验和GPG检查指南
小提示:某些发行版默认不会启用GPG检查,建议手动开启。可以编辑 /etc/yum.conf 或使用 dnf config-manager --setopt=gpgcheck=1 来确保每次安装都做GPG检查。

2. 导入并使用GPG密钥进行签名验证

光靠校验文件完整性还不够,必须确认这个RPM包确实来自可信的发布者。这就需要使用GPG签名机制。

操作步骤:

  1. 下载对应的GPG公钥(通常可以在项目官网找到)
  2. 导入公钥:
    rpm --import public-key.asc
  3. 再次运行 rpm -K package.rpm,如果看到 gpg OK,说明该包确实是用你导入的私钥签名的。

注意:不同厂商有不同的官方密钥,比如Red Hat的密钥可以通过 rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' 查看当前已导入的GPG密钥列表。


3. 配合yum/dnf自动验证机制

大多数基于RPM的系统都使用yum或dnf作为包管理工具,它们已经内置了对GPG签名的验证功能。

自由画布
自由画布

百度文库和百度网盘联合开发的AI创作工具类智能体

下载

配置方式:

/etc/yum.repos.d/ 目录下的仓库配置文件中,确保有如下两行:

gpgcheck=1
repo_gpgcheck=1
  • gpgcheck=1:表示验证包本身的GPG签名。
  • repo_gpgcheck=1:表示验证整个仓库元数据的签名。

这样,在使用 yum installdnf install 安装软件时,系统就会自动完成验证流程。


4. 校验已安装的软件包是否被修改

除了安装前的验证,也可以检查系统中已经安装的RPM包是否被篡改或意外修改。

使用命令:

rpm -Va

这条命令会列出所有与原始RPM包状态不一致的文件。输出中的字段含义如下:

  • S:文件大小变化
  • M:权限或类型变化
  • 5:MD5校验值变化
  • D:设备主/次编号变化
  • L:符号链接路径变化
  • U:用户ID变化
  • G:组ID变化
  • T:修改时间变化

如果发现可疑改动,可以进一步用 rpm -V 包名 检查具体某个包的状态。


基本上就这些。虽然验证过程看起来有点繁琐,但其实只要设置好GPG密钥和启用相关选项,后续大部分工作都可以自动完成。关键是养成“先验证再安装”的习惯,尤其是在部署生产环境时,这一步真的不能省。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1352

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

704

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

777

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

573

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

297

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

381

2023.07.25

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

4

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.6万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号