CentOS yum 存储库错误标头 V4 RSA/SHA1 签名

CentOS yum 存储库错误标头 V4 RSA/SHA1 签名

为了解决这个问题,我处理了很多问题。

我已经在服务器(CentOS 5.6)上安装了 yum 存储库:

createrepo -v -s sha yumrepo/

使用 sha 是为了解决我发现的早期问题:我的存储库未被接受。 ( [Errno -3] Error performing checksum)

使用以下命令生成 gpg 密钥:

gpg --gen-key

使用以下方式签署包(包未在服务器上创建):

rpm --addsign mypackage-1.0-1.i386.rpm  

检查是否正确签名:

rpm -vv --checksig mypackage-1.0-1.i386.rpm 
D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key
D: couldn't find any keys in /var/lib/rpm/pubkeys/*.key
D: loading keyring from rpmdb
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: opening  db index       /var/lib/rpm/Name rdonly mode=0x0
D:  read h#     205 Header sanity check: OK
D: added key gpg-pubkey-c105b9de-4e0fd3a3 to keyring
D:  read h#     313 Header sanity check: OK
D: added key gpg-pubkey-ebb3d90e-4ee5e6e8 to keyring
D: Using legacy gpg-pubkey(s) from rpmdb
D: Expected size:         3126 = lead(96)+sigs(528)+pad(0)+data(2502)
D:   Actual size:         3126
mypackage-1.0-1.i386.rpm:
    Header V4 RSA/SHA1 Signature, key ID ebb3d90e: OK
    Header SHA1 digest: OK (6d131be3c792fcc99da662f432c33facc86efc56)
    V4 RSA/SHA1 Signature, key ID ebb3d90e: OK
    MD5 digest: OK (76cfe98c4128d45da894a2b5b970e703)
D: closed   db index       /var/lib/rpm/Name
D: closed   db index       /var/lib/rpm/Packages

并导出我的公钥:

gpg --armor --output MY-GPG-KEY --export 'MYNAME'

在客户端(CentOS 5.6)上我创建了文件 /etc/yum.repos.d/myrepo.repo ,内容如下:

[myrepo]
name=myrepo
baseurl=https://login:[email protected]
enabled=1
gpgcheck=1
gpgkey=https://login:[email protected]/MY-GPG-KEY
protect=1

比我以root身份运行的:

yum clean all
yum install mypackage

并得到一个错误:

Downloading Packages:
mypackage-0.1-1.noarch.rpm                                | 3.0 kB     00:00     
error: rpmts_HdrFromFdno: Header V4 RSA/SHA1 signature: BAD, key ID ebb3d90e

尽管:

rpm -q gpg-pubkey
gpg-pubkey-e8562897-459f07a4
gpg-pubkey-217521f6-45e8a532
gpg-pubkey-ebb3d90e-4ee5e6e8

我应该怎么做才能安全安装我的软件包?

答案1

您的答案在此页: http://adminotes.blogspot.fr/2011/12/centos-6-rpm-sign-problem-v4-signatures.html

综上所述,Centos 6中默认使用v4签名,而Centos 5仅支持v3。

在您的遗嘱中添加--force-v3-sigs标志%__gpg_sign_cmd即可使其发挥作用。

答案2

问题是 gpg 密钥。有一个漏洞因此会创建损坏的签名。我建议编辑 myrepo.repo 并设置 gpgcheck=1

答案3

我在 CentOS 6 中遇到了同样的问题。我想我应该为像我这样来到这里的人记录我的解决方案。

我有 CentOS 6.0,带有旧版本的 ca 证书 rpm。 ca-certificates-2010.63-3.el6.noarch。

使用 yum 安装 rpm 时,出现以下错误: error: rpmts_HdrFromFdno: Header V4 DSA/SHA256 Signature, key ID 35511c46: BAD

通过将 rpm 包与工作服务器进行比较并检查命令历史记录,我能够将问题范围缩小到上述包。

使用 yum 安装最新版本 (ca-certificates-2017.2.14-65.0.1.el6_9.noarch) 及其依赖项后,我能够安装我最初尝试安装的 rpm。

附带说明一下,nss-softtoken 包在更新 ca-certificates 包的同时也进行了更新。我不太确定这是否解决了问题,如记录所示https://www.centos.org/forums/viewtopic.php?t=50775

答案4

$ sudo rpm --addsign zstd-1.4.4-1.cl8.x86_64.rpm
zstd-1.4.4-1.cl8.x86_64.rpm:
gpg: WARNING: unsafe ownership on homedir '/home/rongtao/.gnupg'
gpg: writing to 'zstd-1.4.4-1.cl8.x86_64.rpm.sig'
gpg: pinentry launched (49593 curses 1.1.0 /dev/pts/0 xterm-256color -)
gpg: RSA/SHA256 signature from: "3F2FA11D3D67D70B Rong Tao <[email protected]>"
gpg: WARNING: unsafe ownership on homedir '/home/rongtao/.gnupg'
gpg: writing to 'zstd-1.4.4-1.cl8.x86_64.rpm.sig'
gpg: RSA/SHA256 signature from: "3F2FA11D3D67D70B Rong Tao <[email protected]>"

$ rpm -qpi zstd-1.4.4-1.cl8.x86_64.rpm 
error: zstd-1.4.4-1.cl8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3d67d70b: BAD
error: zstd-1.4.4-1.cl8.x86_64.rpm: not an rpm package (or package manifest)

相关内容