我正在尝试在 CentOS 5.5 上为 Spacewalk 签名 Java JDK 1.6u21 64 位 RPM,但遇到了问题。签名似乎没问题,但当我检查签名时,似乎缺少我刚刚用来签名的密钥。然而 RPM 在其列表中显示了密钥...
# rpm --addsign jdk-6u21-linux-amd64.rpm
Enter pass phrase:
Pass phrase is good.
jdk-6u21-linux-amd64.rpm:
gpg: WARNING: standard input reopened
gpg: WARNING: standard input reopened
# rpm --checksig -v jdk-6u21-linux-amd64.rpm
jdk-6u21-linux-amd64.rpm:
Header V3 DSA signature: NOKEY, key ID ecfd98a5
MD5 digest: OK (650e0961e20d4a44169b68e8f4a1691b)
V3 DSA signature: OK, key ID ecfd98a5
但我已经导入了密钥(为了保护隐私进行了编辑):
# rpm -qa gpg-pubkey* |grep ecfd98a5
gpg-pubkey-ecfd98a5-4caa4a4c
# rpm -qi gpg-pubkey-ecfd98a5-4caa4a4c
Name : gpg-pubkey Relocations: (not relocatable)
Version : ecfd98a5 Vendor: (none)
Release : 4caa4a4c Build Date: Mon 04 Oct 2010 10:20:49 PM CDT
Install Date: Mon 04 Oct 2010 10:20:49 PM CDT Build Host: localhost
Group : Public Keys Source RPM: (none)
Size : 0 License: pubkey
Signature : (none)
Summary : gpg(FirstName LastName <[email protected]>)
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.4.2.3 (NSS-3)
...key goes here...
=gKjN-----END PGP PUBLIC KEY BLOCK-----
我确实运行的是 64 位版本的 CentOS:
# uname -a
Linux spacewalk.mycompany.corp 2.6.18-194.11.4.el5 #1 SMP Tue Sep 21 05:04:09 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
如果没有有效签名,Spacewalk 会拒绝安装 RPM,除非我完全禁用签名检查。我在同一台机器上用两个不同的密钥和两个不同的用户尝试过,但都没有成功。
有什么好主意吗?
答案1
您的 testsig 输出是正确的,因为它显示了您的公钥 ID。
您是在两台机器之间进行此操作还是全部在一台机器上进行?
答案2
RHEL/CentOS 5 中的大型 RPM 存在一个已知错误,该错误导致某些大型 RPM 的 GPG 签名始终失败。