当前位置: 首页 > news >正文

使用 RPM 软件包的签名管理工具:rpmsign

1. 命令简介

rpmsign 是 RPM 包管理系统中用于管理软件包数字签名的命令行工具。它主要用于对 RPM 软件包进行签名、验证签名、删除签名以及导入签名所需的公钥等操作。数字签名用于验证软件包的完整性和来源的真实性,是确保软件包在分发过程中未被篡改的关键安全机制。

2. 语法格式

bash

运行

rpmsign [选项] [软件包文件...]

说明:

  • [选项]:指定 rpmsign 执行的具体操作及相关参数。
  • [软件包文件...]:一个或多个 RPM 软件包文件(通常以.rpm为扩展名)。对于某些操作(如--addsign--checksig),此参数是必需的。

3. 常用选项及说明

表格

选项说明
--addsign为指定的一个或多个 RPM 软件包添加签名。需要配置好签名密钥。
--checksig验证指定 RPM 软件包的签名和完整性(包括校验和)。这是最常用的验证命令。
--delsign删除 RPM 软件包中的签名。注意:这会使得软件包无法通过签名验证。
--resign使用当前配置的密钥,为软件包重新签名(即先删除旧签名,再添加新签名)。
--import <密钥文件>将指定的公钥文件(通常以 .asc 或 .key 结尾)导入到 RPM 数据库的信任密钥环中。这是验证签名前通常需要做的准备工作。
--nodigest在与 --checksig 一同使用时,跳过对软件包头部和载荷(payload)校验和的验证。
--nosignature在与 --checksig 一同使用时,跳过对软件包数字签名的验证。
-v, --verbose提供更详细的输出信息。
-h, --help显示此帮助信息并退出。

关键点

  • --addsign--delsign--resign操作会直接修改原始的.rpm文件。
  • 签名操作需要预先在~/.rpmmacros文件中配置签名密钥(通常通过%_gpg_name宏指定),并且需要访问该密钥的私钥。
  • --checksig是验证从外部获取的软件包时的标准操作。

4. 示例用法

示例 1:导入公钥

在验证来自某个仓库的软件包前,需要先导入该仓库发布的公钥。

bash

运行

sudo rpmsign --import RPM-GPG-KEY-example-company

示例 2:验证软件包签名和完整性

这是最常用的操作,用于检查下载的软件包是否完整且来自可信源。

bash

运行

rpmsign --checksig google-chrome-stable_current_x86_64.rpm

输出可能类似于:

plaintext

google-chrome-stable_current_x86_64.rpm: rsa sha1 (md5) pgp md5 确定

“确定” 表示签名和摘要验证均通过。

示例 3:为软件包添加签名

假设已配置好签名密钥,为自己构建的 RPM 包添加签名。

bash

运行

rpmsign --addsign myapp-1.0-1.el7.x86_64.rpm

系统可能会提示输入 GPG 密钥的密码。

示例 4:重新签名软件包

使用当前配置的新密钥,替换软件包中的旧签名。

bash

运行

rpmsign --resign legacy-package-2.0-1.x86_64.rpm

示例 5:验证时跳过签名检查

在某些内部场景下,可能只关心软件包内容是否完整,不验证来源。

bash

运行

rpmsign --checksig --nosignature some-package.rpm

示例 6:删除软件包中的签名

移除以减小文件大小或进行内部处理(通常不推荐,会破坏验证链)。

bash

运行

rpmsign --delsign internal-tool-1.5.rpm

5. 注意事项

  • 权限要求--import操作通常需要 root 权限,因为要将公钥写入系统级的 RPM 数据库(/var/lib/rpm目录下);--addsign--delsign--resign操作需要对目标 RPM 文件有写权限。
  • 密钥配置:执行签名操作(--addsign--resign)前,必须确保已在~/.rpmmacros(用户级)或/etc/rpm/macros(系统级)中正确配置了 GPG 签名密钥,例如:%_gpg_name Your Name <email@example.com>
  • 文件修改--addsign--delsign--resign会原地修改指定的 RPM 文件。建议对重要软件包提前进行备份。
  • 验证结果解读:使用--checksig时,输出中的 “确定” 表示所有检查通过。如果签名或摘要验证失败,会明确报错(如NOKEY表示缺少公钥,BAD表示签名不匹配或文件损坏)。
  • 与 rpm 命令的关系rpm命令本身也包含--checksig--import等子命令,功能与rpmsign重叠。rpmsign可以看作是对 RPM 签名管理功能的专门化封装,在脚本化或专注签名操作时更为清晰。

获取更多Linux学习资料请关注“阿成学长工具包”公众号,对话框中输入2647获取

http://www.jsqmd.com/news/531597/

相关文章:

  • Wan2.1视频生成技术全栈实践指南:从原理到产业落地的开源解决方案
  • Qwen3.5-4B-Claude-Opus入门必看:结构化推理+代码解释Web助手实操手册
  • ToastFish:让碎片时间成为词汇积累的黄金窗口
  • 技术挑战:IsaacLab机器人仿真框架在硬件升级中的架构适配与跨版本依赖管理
  • Swagger接口文档神器:@ApiOperation注解的7个实战技巧(附完整代码示例)
  • 2025年AI工程师面试终极通关指南:从算法到架构的全面突破
  • VOOHU电子:推挽式变压器在隔离电源中的选型与设计要点
  • EcomGPT电商大模型入门必看:电商运营最常使用的5个Prompt模板及调优技巧
  • SSH-Chat 故障排查完全指南
  • 校园生活服务平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • QMCDecode:让QQ音乐加密文件重获自由的格式转换工具
  • 3步打造颠覆式AI视频生成工作站:极简部署指南
  • Pixel Dream Workshop 创意编程:用Processing可视化生成过程
  • Sqoop分区表数据导入完全指南:原理、参数与分区策略
  • 海陵全屋定制工厂推荐榜:扬州全屋定制工厂、泰州ENF级全屋定制、泰州免漆门定制、泰州全屋定制厂哪家好、泰州卧室门定制选择指南 - 优质品牌商家
  • 从博世到特斯拉:手把手拆解4D毫米波雷达MIMO天线阵列设计的实战思路
  • 3大核心功能破解《深岩银河》存档管理难题:DRG Save Editor全解析
  • 别急着甩锅给运维!从一次OOM宕机到MySQL锁表,我是如何用jstack和jvisualvm揪出真凶的
  • 2026年质量好的铝箔封盖膜/封盖膜定制实力工厂推荐 - 品牌宣传支持者
  • 伏羲天气预报伦理框架:AI气象预报责任界定、误差披露与用户告知
  • Hadamard乘积在PyTorch中的5种高效实现方式(附代码对比)
  • Java 底层重构 + RAG/Agent 全栈平台:6个月双螺旋进阶总纲
  • 别再死记硬背Treap代码了!用动画图解帮你彻底搞懂‘树+堆’的平衡原理
  • MySQL八股——进阶篇(持续更新)
  • Spring Boot 3.x开发中 API 密钥认证的密钥轮换机制问题详解及解决方案
  • Wan2.2视频大模型:如何在消费级显卡上实现电影级AI视频创作?
  • Vue3+TS项目里,import .vue文件报TS7016错误的保姆级排查手册
  • FaceRecon-3D开源模型:支持ONNX导出,跨平台部署至Windows/macOS/Linux
  • Phi-4-reasoning-vision-15B效果展示:工程CAD图纸截图→标准件识别+材料清单生成
  • ROS2默认中间件FASTDDS中的域domain理解