使用 GPG 对RPM包进行签名

RPM软件包签名可用于对RPM软件包实施加密完整性检查。

首先生成 gpg 的密钥对

在生成的时候,会输入一个密码,这里输入了 Test123

确认是否已经成功的生成了key

这里有两个key,一个是我手动导入的,另外一个是最新成生的.
这说明了新生成一个key,并不会对旧的key有影响.

导出钥匙对

导出公钥

gpg --export -a 'Test_GPG_Key' > ~/Test_GPG_Key.public

导出私钥

sudo gpg --export-secret-key -a Test_GPG_Key > ~/Test_GPG_Key.private

把公钥导入到 rpm 的数据库内

导入到数据库内

rpm --import ~/Test_GPG_Key.public

列出数据库内的 gpg 公钥

$ rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
gpg-pubkey-378aae6a-5afd262f --> gpg(My Corp (Demo) <admin@gmail.com>)
gpg-pubkey-ec2c3f09-5fa8b906 --> gpg(Test_GPG_Key <xtk621@gmail.com>)

第二条记录就是刚刚导入的记录

生成配置文件

新建配置文件~/.rpmmacros, 写入以下内容

%_signature gpg
%_gpg_path /home/kyle/.gnupg
%_gpg_name Test_GPG_Key
%_gpgbin /usr/bin/gpg2
%_gpg_digest_algo sha1
%__gpg_sign_cmd %{__gpg} gpg --force-v3-sigs --batch --verbose --no-armor --passphrase-file /home/kyle/Test_GPG_Key.private --no-secmem-warning -u "%{_gpg_name}" -sbo %{__signature_filename} --digest-algo sha256 %{__plaintext_filename}'

对 RPM 包进行签名

$ sudo rpmsign --addsign /tmp/demo-common-8.0.26582-1.d4158c3.dbg.x86_64.rpm
[sudo] password for kyle:
/tmp/demo-common-8.0.26582-1.d4158c3.dbg.x86_64.rpm:
gpg: WARNING: unsafe ownership on homedir '/home/kyle/.gnupg'
gpg: writing to '/tmp/demo-common-8.0.26582-1.d4158c3.dbg.x86_64.rpm.sig'
gpg: pinentry launched (27337 gnome3:curses 1.1.0 /dev/pts/4 xterm-256color -)
gpg: RSA/SHA256 signature from: "C5BE341EEC2C3F09 Test_GPG_Key <xtk621@gmail.com>"
gpg: WARNING: unsafe ownership on homedir '/home/kyle/.gnupg'
gpg: writing to '/tmp/demo-common-8.0.26582-1.d4158c3.dbg.x86_64.rpm.sig'
gpg: RSA/SHA256 signature from: "C5BE341EEC2C3F09 Test_GPG_Key <xtk621@gmail.com>"

验证签名

$ rpm -Kv /tmp/demo-common-8.0.26582-1.d4158c3.dbg.x86_64.rpm
/tmp/demo-common-8.0.26582-1.d4158c3.dbg.x86_64.rpm:
Header V4 RSA/SHA256 Signature, key ID ec2c3f09: OK
Header SHA1 digest: OK
Header SHA256 digest: OK
Payload SHA256 digest: OK
V4 RSA/SHA256 Signature, key ID ec2c3f09: OK
MD5 digest: OK

里有一个Key ID: ec2c3f09, 就是数据库内公钥的version.
如果能对得上,就证明已经签名成功了

https://blog.csdn.net/kyle__shaw/article/details/114984943

2021-08-16相关推荐

  1. 本博客导读(2021/08/09更新)

    文章目录 1. 简介 1.1 博客精神 1.2 写作目的 1.3 技术方向 1.4 博主 1.5 版权说明 2 推荐内容 2.1 主要代表作 2.2 其他推荐内容 3. 程序类 3.1 C#程序设计 ...

  2. 2021.08.09【普及组】模拟赛C组比赛总结

    文章目录 2021.08.09[普及组]模拟赛C组比赛总结 写在前面: T1 :[普及模拟]生产武器 题目大意: 正解: T2 :[普及模拟]城市连接 题目大意: 正解: T3 :[普及模拟]抢救文件 ...

  3. 《安富莱嵌入式周报》第227期:2021.08.23--2021.08.29

    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 ...

  4. 微软必应(Bing)打不开解决方案(2021.12.16)

    2021.12.19 0:10更新:现在Bing已修复,可直接通过https://cn.bing.com/访问~ 问题描述 2021.12.16开始必应就打不开了.. 解决方案 1. 打开主页 将原先 ...

  5. 纯Go实现的Firebase的替代品 | Gopher Daily (2021.08.11) ʕ◔ϖ◔ʔ

    每日一谚:Global variables should have longer names. Go技术生态 如何才能成功将Python切换到Go - https://itnext.io/opinio ...

  6. GNSS数据下载网站整理,包括gamit、bernese更新文件地址[2021.08更新]

    本人博客园同名原创文章,展示到CSDN供大家参考,转载请声明地址:https://www.cnblogs.com/ydh2017/p/6474654.html 从事GNSS研究的小伙伴大都离不开GNS ...

  7. Go 1.17 RC2发布 | Gopher Daily (2021.08.03) ʕ◔ϖ◔ʔ

    每日一谚:Package name space is flat Go技术生态 Go 1.17 RC2发布 - https://groups.google.com/g/golang-announce/c ...

  8. CAT24C01/02/04/08/16 和CAT24C512 设备地址差异 ;大容量空间读写还要在设备地址后面加寄存器地址

    ATMEL  EEPROM       AT24CXXX 安森美 ON EEPROM  CAT24CXXX EEPROM 设备地址 1.1,CAT24C01/02/04/08/16 设备地址  规格书 ...

  9. ds填空题2021/2/16

    2021/2/16 在一棵二叉树中,假定度为2的结点个数为5个,度为1的结点个数为6个,则叶子结点数为 6 个. 需要知道二叉树 叶子结点数和度为2结点数 的性质:二叉树的叶子结点数永远比度为2的结点 ...

  10. 2021.07.16 总结

    2021.07.16 总结 ​ 今天状态不怎么好,几道那么容易的题就只有140分,毕竟也就打了前两道 T1 花生采摘 题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然 ...

最新文章

  1. 如何反驳「神经网络本质不过是初中生都会的复合函数」?
  2. BZOJ 1603: [Usaco2008 Oct]打谷机
  3. ExtJs Ext.TaskMgr定时刷新数据源
  4. OCP考试052考试,新的考题还有答案整理-23题
  5. python极简教程_Python 极简教程(六)运算符
  6. Oracle坏块处理常用SQL
  7. pytorch 深入理解 tensor.scatter_ ()用法
  8. mysql 分表查询外连接_SQL多表连接查询实例(内连接外连接)
  9. 跨平台数据库ODB实战4-Person类的聚合查询
  10. git里面的文件怎么删不掉_彻底删除git中没用的大文件
  11. 几种典型信号的频谱 周期单位脉冲序列的频谱
  12. 永洪报表工具_报表工具对比选型系列用例——过程计算
  13. 三国之空城计游戏攻略
  14. 计算机的硬盘 u盘启动,设置U盘启动和硬盘启动两种差别教程步骤
  15. wince 百度地图懒人包_百度地图winCE版 V10.9.2 安卓版
  16. Cython基础使用
  17. Android Room 数据库最佳入门教程
  18. c语言字母是怎么存储,C语言之数据在内存中的存储
  19. 农信计算机资料录入试题,农村信用社计算机考试试题.docx
  20. 0、PIC系列参考手册中文版文档汇总

热门文章

  1. 《前端圈技术论坛-腾讯互娱专场》观后感
  2. 乐视手机调用自启动管理, 乐视手机调用应用权限管理
  3. java开灯问题_算法入门之开灯问题
  4. 矩阵分析与应用-1.2-向量空间_内积空间与线性映射
  5. 第二天 熟悉ue4工具 及快捷键
  6. element-UI设置背景色和边框色
  7. 适当修改LIO-SAM_based_relocalization解决初始重定位显示错误
  8. MT6589下载工具,MT6589刷机工具
  9. 如何安装arm交叉工具链及问题解决
  10. array unshift php,php – 用于多维数组的array_unshift