news 2026/7/5 10:28:30

Debian packages 的签名与验证

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Debian packages 的签名与验证

1. 生成 GPG 密钥

首先需要生成 GPG (GNU Privacy Guard)密钥对用于签名:

# 生成 GPG 密钥 gpg --gen-key # 选择密钥类型(推荐 RSA) # 选择密钥大小(推荐 2048 或 4096) # 设置密钥有效期(0 表示永不过期) # 输入姓名、邮箱和注释信息 # 设置保护私钥的密码

查看生成的密钥:

gpg --list-keys

2. 导出公钥

将公钥导出以便其他人可以验证你的签名:

# 导出公钥到文件 gpg --armor --export your-email@example.com > public-key.gpg # 或者直接显示在终端 gpg --armor --export your-email@example.com

3. 安装 dpkg-sig 工具

sudo apt-get install dpkg-sig

4. 签名 Debian 包

使用 dpkg-sig 对 Debian 包进行签名:

# 获取 GPG 密钥 ID(从 gpg --list-keys 输出中获取) gpg --list-keys # 使用 dpkg-sig 签名包 dpkg-sig -k <GPG密钥ID> --sign builder package-name.deb # 示例 dpkg-sig -k E5124174 --sign builder aribas_1.64-6_amd64.deb

5. 验证签名

在同一台机器上验证:

dpkg-sig --verify package-name.deb

如果验证成功,将显示GOODSIG

在其他机器上验证:

  1. 首先导入签名者的公钥:

gpg --import public-key.gpg
  1. 然后验证包签名:

dpkg-sig --verify package-name.deb

6. 常见问题解决

旧版本 dpkg-sig 的兼容性问题

如果遇到BADSIG错误(特别是对于 xz 压缩的包),可能是 dpkg-sig 版本过旧:

# 手动下载新版本 wget http://archive.ubuntu.com/ubuntu/pool/main/d/dpkg-sig/dpkg-sig_0.13.1+nmu4_all.deb # 解压并提取可执行文件 ar vx dpkg-sig_0.13.1+nmu4_all.deb tar -xvf data.tar.xz # 使用新版本验证 ./usr/bin/dpkg-sig --verify package-name.deb

7. 完整流程示例

# 1. 生成密钥 gpg --gen-key # 2. 查看密钥ID gpg --list-keys # 3. 签名包 dpkg-sig -k E5124174 --sign builder my-package.deb # 4. 验证签名 dpkg-sig --verify my-package.deb # 5. 导出公钥供他人使用 gpg --armor --export your-email@example.com > my-public-key.gpg

注意事项

  • 确保使用足够强度的密钥(2048位或以上)

  • 妥善保管私钥和密码

  • 在验证环境中正确导入公钥

  • 定期更新密钥和检查签名有效性

通过以上步骤,你可以确保 Debian 包的完整性和来源可信性,满足安全标准要求。

参考:

https://hussainaliakbar.github.io/generating-and-using-GPG-keys/ https://hussainaliakbar.github.io/digitally-signing-and-verification-of-debian-packages-with-dpkg-sig/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 12:00:24

如何利用SQL计算ABC库存分类(帕累托分析)?

目录 一、核心概念:ABC分类与帕累托法则 1. ABC库存分类法定义 2. 帕累托法则(二八定律) 3. 为什么用SQL窗口函数实现? 二、SQL实现:完整ABC分类方案 1. 需求明确 2. 数据准备 3. NTILE(n) 函数简介 核心定义 基本语法 特点 分配算法原理 4. 完整SQL代码 5.…

作者头像 李华
网站建设 2026/6/30 1:11:49

RAG 检索模型如何学习:三种损失函数的机制解析

Agent 系统发展得这么快那么检索模型还重要吗&#xff1f;RAG 本身都已经衍生出 Agentic RAG和 Self-RAG&#xff08;这些更复杂的变体了。 答案是肯定的&#xff0c;无论 Agent 方法在效率和推理上做了多少改进&#xff0c;底层还是离不开检索。检索模型越准&#xff0c;需要…

作者头像 李华
网站建设 2026/6/15 9:48:13

亿可达×飞书:一键搞定定时群通知,告别人工重复提醒

有没有过这样的职场日常&#xff1f; 每天下午临近下班&#xff0c;都要特意定个闹钟提醒自己&#xff1a;“别忘了发例会通知”“记得同步今日工作小结到飞书群”&#xff1b;每周一早上&#xff0c;总要专门抽5分钟&#xff0c;在部门群推送本周任务清单&#xff1b;甚至节假…

作者头像 李华
网站建设 2026/6/30 23:39:25

前端性能优化系列(一):问题分析与诊断

一、问题拆解 1.1 问题描述分析 原始问题&#xff1a;前端页面打开非常慢 大量请求 数据量大 拆解为三个维度&#xff1a; 问题维度拆解&#xff1a; ├── 慢在哪里&#xff1f; │ ├── 首屏白屏时间长&#xff08;3秒以上&#xff09; │ ├── 页面加载完成时…

作者头像 李华
网站建设 2026/6/22 4:12:24

(新卷,200分)- 区间交叠问题(Java JS Python)

(新卷,200分)- 区间交叠问题&#xff08;Java & JS & Python&#xff09;题目描述给定坐标轴上的一组线段&#xff0c;线段的起点和终点均为整数并且长度不小于1&#xff0c;请你从中找到最少数量的线段&#xff0c;这些线段可以覆盖柱所有线段。输入描述第一行输入为所…

作者头像 李华