当我为 SUSE Linux 编码、构建和签名 .rpm 文件时,它已成功签名,如下所示:
rpm --checksig -v xxx.rpm
Header V4 RSA/SHA256 Signature, key ID 7936b039: OK
Header SHA1 digest: OK
Header SHA256 digest: OK
Payload SHA256 digest: OK
V4 RSA/SHA256 Signature, key ID 7936b039: OK
MD5 digest: OK
但是当我将此文件复制到SUSE Linux 企业版 12 SP3PC上重新检查,结果如下:
rpm --checksig -v xxx.rpm
Header V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
Header SHA1 digest: OK (62415d048bc9e59e70037e94e41e54e1087a93af)
V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
MD5 digest: OK (bde2174905b9e9b05953b148385ed99a)
然后在安装时出现错误:
xxx.rpm:
Header V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
V4 RSA/SHA256 Signature, key ID 7936b039: NOKEY
xxx-15.4.2.1-0.x86_64 (Plain RPM files cache): Signature verification failed [4-Signatures public key is not available]
Abort, retry, ignore? [a/r/i] (a):
我在互联网上研究了一些解决方案,并尝试在安装之前重新导入公钥文件(我在签署 RPM 文件时创建): sudo rpm --import RPM-GPG-KEY-faleman
但还是失败了。
这个问题的原因是什么?
如何对 .RPM 文件进行签名,以便能够在 SUSE Linux 上成功安装而不会收到错误消息?
答案1
SLE12 具有旧版本的 RPM (4.11.2),不支持 V4 签名。因此,更改您的构建配置以使用 V3 签名:D
可以在这里找到一些帮助https://adminotes.blogspot.com/2011/12/centos-6-rpm-sign-problem-v4-signatures.html
答案2
您可能使用了不兼容的 GPG 密钥 (V4)。就像这个家伙https://localsteve.wordpress.com/2013/02/06/signing-rpms-cause-unverifying-v4-signatures-and-extreme-frustration/
尝试使用不同的加密算法创建不同的密钥。