前言:我们使用 Spacewalk 通过私有存储库将一些内部软件包分发到 Ubuntu 系统,因此需要进行自我签名。不幸的是,Spacewalk 尚未处理签名部分,因此必须手动完成。
我们在使用 apt 时遇到问题,提示发布文件的签名无效::
# apt update
Apt-Spacewalk: Updating sources.list
Ign:1 spacewalk://spacewalk.server extras-ubuntu InRelease
[...]
Reading package lists... Done
W: GPG error: spacewalk://spacewalk.server extras-ubuntu Release:
The following signatures were invalid: 41CDF527725B5CD68EA405AA27D22AF72385D175
密钥已导入到 apt-key
# apt-key list
/etc/apt/trusted.gpg
--------------------
pub rsa2048 2018-03-23 [SC]
41CD F527 725B 5CD6 8EA4 05AA 27D2 2AF7 2385 D175
uid [ unknown] Spacewalk (For GPG signing APT repos) <nobody@nowhere>
事实上,Release 文件是使用正确的密钥签名的:
# gpg -k
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/2385D175 2018-03-23
uid Spacewalk (For GPG signing APT repos) <nobody@nowhere>
# gpg ./Release.gpg
Detached signature.
Please enter name of data file: Release
gpg: Signature made Fri 23 Mar 2018 10:43:50 AM EDT using RSA key ID 2385D175
gpg: Good signature from "Spacewalk (For GPG signing APT repos) <nobody@nowhere>"
此无效签名错误的原因是什么?我们该如何修复?我们严格遵循了http://www.devops-blog.net/spacewalk/gpg-signing-apt-repository-in-spacewalk一切看起来都应该可以工作,但事实并非如此。
答案1
我在本地 Debian 9 仓库中遇到了同样的问题,不是 Spacewalk 特有的。追踪到:
- 密钥需要 SHA-256
- 对 sources.list 中的 gpg 密钥使用“signed-by”
- 设备公钥不能是 ASCII,必须是二进制
通过阅读文档找到了答案连接第三方存储库的说明