Debian 9、APT 和“GPG 错误:... InRelease:以下签名无效:”

Jde*_*eBP 8 debian apt repository

我发布了一个 Debian 存储库。它使用 4096 位 GPG 密钥进行签名,并且在 Debian 7 和 Debian 8 系统中使用了一段时间。最近,我的一位用户报告说 Debian 9 有问题。具体来说,apt-get update正在产生:

阅读包裹清单...完成
   W:GPG 错误:http: //Debian-repository.JdeBP.info。稳定的 InRelease:以下签名无效:A71733F3CEBD655CB25A0DDCE1E3A497555CE68F
   W:存储库' http://Debian-repository.JdeBP.info。稳定 InRelease' 未签名。

请注意,与“回购 APT 安全 - apt-get 更新 GPG 签名无效”和“对 aptly 和 GPG 签名感到沮丧”中的人不同,我没有使用aptly. 很明显,我没有遭受aptly任何类型的错误。(-:

那么问题是什么?

Jde*_*eBP 9

问题的原因是没有对 Debian wiki 或其他类似的文档进行更新,并且在非 Debian个人WWW 站点上几乎只有几个主要与Ubuntu相关的公告,支持说明偏好 SHA- 1 加密在 Debian 9 中的 APT 中已经关闭。(具体来说,它在 APT 1.4~beta1 版本中被关闭,而 Debian 9 有 1.4.7 版本。)

因此,存储库发布者需要做两件事:

  • 调整personal-digest-preferencespersonal-cipher-preferencesin$HOME/.gnupg/gpg.conf以从一个人的 GPG 首选项中消除 SHA-1。这可以防止问题再次出现在新密钥上。
  • 调整包含在当前存储库签名密钥中的首选项以从那里消除 SHA-1。为此需要:
    • gpg --edit-key "${key_fingerprint}"
      替换适当的密钥指纹,然后使用prefsetpref命令编辑密钥首选项,然后将密钥保存到密钥环。
    • 将更新密钥的公钥从密钥环导出到文件。
    • 使用修改后的签名密钥重新签署存储库。
    • 发布更新的签名密钥的公钥文件。

请注意,没有必要生成新的签名密钥,删除了 SHA-1 的更新密钥将继续与旧的 Debian 8 APT 互操作。

进一步阅读