跳到主要内容
常见问题 DebianGPG签名apt

Debian apt update 签名校验失败(NO_PUBKEY)?

apt update 报 NO_PUBKEY 签名校验失败,是缺少 GPG 公钥。定位是哪个仓库缺哪把键,按官方渠道导入公钥后重试,切勿为省事关闭签名校验。

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

简短答案

apt update 报 NO_PUBKEY / 签名校验失败,是本地缺少对应仓库的 GPG 公钥。先定位是哪个仓库缺哪把键,再从官方渠道导入该公钥后重试;为省事关掉签名校验是下策,别走。

现象对照

报错 含义
NO_PUBKEY <指纹> 本地没有该仓库的公钥
校验失败(有键但签不上) 公钥/软件包版本不匹配或包被改动
只有个别仓库失败 该仓库的键单独缺失

排查步骤

# 1. 看具体哪个仓库、缺哪把键(记下报错里的指纹)
sudo apt update 2>&1 | grep -iE 'NO_PUBKEY|signed|invalid'

# 2. 确认该仓库定义在哪(.sources / .list)
grep -rE '<代号|仓库名>' /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null

# 3. 从官方渠道导入公钥(键的获取方式以官方文档为准)
sudo apt-key   # 旧机制;新版建议把公钥放入 /etc/apt/trusted.gpg.d/
# 将对应公钥文件放入 /etc/apt/trusted.gpg.d/ 后重新 update

# 4. 重试
sudo apt update
  • 缺哪把键,就导入哪把:不要把整个签名校验关掉(Acquire::Check-Valid-Until、信任未签名等),那会让 apt 失去对包完整性的把关。
  • 校验失败但公钥明明在:多半是公钥与仓库版本不匹配或本地包被改动,先核对仓库指向的代号/版本是否正确,再重导键。
  • 公钥来源必须是官方渠道,第三方/来路不明的键一律不导,防止被投毒。

注意:键缺失是「本地没这把公钥」,不是「包坏了」;但校验失败 ≠ 可以绕过,绕过签名校验等于放弃安全底线。仓库结构与签名机制以 Debian 13.7.0 DVD-1 条目 为准,总览见 Debian 索引,网络安装版 Debian 13.7.0 netinst 条目。

操作小结

  1. apt update 抓 NO_PUBKEY 的指纹与仓库。
  2. 查该仓库定义在哪、指向哪个代号。
  3. 从官方渠道导入对应公钥到 trusted.gpg.d。
  4. 重试 update;仍失败核对仓库版本,勿关校验。

相关链接

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

相关推荐下载

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

配套 PE 工具

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

其他常见问题

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