首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回购APT安全- apt-get更新GPG签名无效

回购APT安全- apt-get更新GPG签名无效
EN

Unix & Linux用户
提问于 2017-01-12 09:26:17
回答 2查看 3K关注 0票数 4

在适当地设置新的apt存储库、对存储库进行签名、适当地为存储库提供服务并将公共gpg密钥添加到apt密钥环之后,我在apt update命令中遇到一个失败:

代码语言:javascript
复制
Err:3 http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease                                    
  The following signatures were invalid: #KEY_ID#
Hit:4 http://apt.postgresql.org/pub/repos/apt sid-pgdg InRelease                  
Reading package lists... Done
W: GPG error: http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease: The following signatures were invalid: #KEY_ID#
E: The repository 'http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

但是签名和gpg密钥都很好。我成功地验证了InRelease文件上的gpg签名:

代码语言:javascript
复制
curl http://#REPO_URL#/InRelease | gpg --keyring /etc/apt/trusted.gpg --verify
gpg: Signature made Wed 11 Jan 2017 04:01:23 PM CET
gpg:                using RSA key #KEY_ID#
gpg: Good signature from "#DESCRIPTION_GPG_KEY#" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: #GOOD_KEY_FINGERPRINT#

我还使用类似的命令验证了ReleaseRelease.gpg文件。

我试图找出在apt update期间使用strace -o /tmp/strace -ff apt update (然后是grep)所做的事情:

代码语言:javascript
复制
grep 'apt.*key' ./strace*
./strace.29829:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.ORUwxh", "/tmp/apt.data.kKXyrN"], [/* 28 vars */]) = 0
./strace.29829:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.29888:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.utRWBD", "/tmp/apt.data.Fo1Lka"], [/* 28 vars */]) = 0
./strace.29888:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.29947:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.ug6xiV", "/tmp/apt.data.Yv4zFs"], [/* 28 vars */]) = 0
./strace.29947:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.30006:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.QSyrCg", "/tmp/apt.data.LK9DGO"], [/* 28 vars */]) = 0
./strace.30006:open("/usr/bin/apt-key", O_RDONLY)      = 4

如何调试和修复此错误?

EN

回答 2

Unix & Linux用户

发布于 2017-07-02 18:38:26

我也有同样的问题,从Debian 8 (jessie)升级到Debian 9(拉伸)。事实证明Debian 9至少需要一个2048位的GPG密钥,而我的只有1024位。下面的步骤对我来说是可行的:

  • 创建一个具有4096位的新GPG密钥
  • 更新我的GPG配置以使用该键作为默认值(~/.gnupg/gpg.conf,默认键选项)
  • 重新签名我的Release文件,创建Release.gpgInRelease

在这一点上,一切又开始运作。

票数 4
EN

Unix & Linux用户

发布于 2017-07-19 09:53:32

这个bug来自一个被窃听的版本(不记得是哪个版本)。

升级之后,错误消失了。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/336799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档