跳到主要内容
系统常识 DebianGPGapt源安全签名校验

Debian 软件包签名与 GPG 校验机制

讲清 Debian 源里 Release/InRelease/Packages 的 GPG 签名链、apt 安装时校验什么,以及 NO_PUBKEY 校验失败怎么修。这是软件供应链的最后一道防线。

发布于 2026/11/11 所属频道 Ubuntu 与 Debian

结论先行

Debian 对每个源的索引文件做 GPG 签名:apt update 时校验发布文件签名,安装时核对包文件校验和。这是软件供应链的「最后一道防线」——校验失败意味着源配置不对或密钥过期,而不是「包坏了」。

签名链条

对象 谁签 保证什么
Release 文件 对应稳定版的发布密钥(如 Debian 13.7.0 DVD-1 条目 随附的 13 发布密钥) 整个源目录未被篡改
InRelease 同上,打包了 Packages 的校验和 当前源最常用形态
Packages / 每个 .deb 维护者/上传者签名 包文件内容与声明一致

apt 的默认行为

  • apt update 时签名对不上,拒绝使用该源,报 NO_PUBKEY(缺密钥)或 BADSIG(密钥变更/不匹配)。
  • 第三方源要用 deb [signed-by=/usr/share/keyrings/xx.gpg](或 deb822 的 Signed-By:)显式指定密钥。
  • 镜像站是「代管」索引文件与签名,校验失败通常是 URL 写错或代号混用。

Debian 发布密钥会定期轮换,旧密钥环会命中 BADSIG,以发行说明的换钥公告为准。不要图省事加 --allow-unauthenticated。

校验失败怎么修

  1. 检查 /etc/apt/sources.list(.d) 里的源行是否与当前版本(trixie)对应。
  2. sudo apt-get update 看具体报错:NO_PUBKEY → 从官方渠道导入密钥;BADSIG → 密钥轮换或混用源。
  3. 第三方源的公钥只从其官方渠道获取,不从来路不明的镜像拷。
  4. Debian 13.7.0 网络安装版条目 的默认源就是这套机制,换国内镜像后签名链同样要走一遍。

常见误操作

  • 用 trusted=yes / --allow-unauthenticated 绕过签名——等于关掉最后一道防线。
  • 把 testing/unstable 源与 stable 的密钥混用。
  • 以为「换了镜像」就要「换密钥」——密钥始终跟随发行方,不跟随镜像。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常识文章

同一集合内的相近主题,按标签与关键词匹配