标头 V3 RSA/SHA1 签名,密钥 ID c105b9de:BAD

标头 V3 RSA/SHA1 签名,密钥 ID c105b9de:BAD

我在 Centos 6.6 上使用 rpm 时遇到了一个奇怪的问题。

我尝试安装 rpm/srpm 并收到此消息:

rpm -v --checksig glibc-2.12-1.149.el6.src.rpm 
glibc-2.12-1.149.el6.src.rpm:
Entête V3 RSA/SHA1 Signature, key ID c105b9de: BAD
Header SHA1 digest: BAD
V3 RSA/SHA1 Signature, key ID c105b9de: BAD
MD5 digest: BAD

从另一台具有相同操作系统版本的服务器:

rpm -v --checksig glibc-2.12-1.149.el6.src.rpm 
glibc-2.12-1.149.el6.src.rpm:
Entête V3 RSA/SHA1 Signature, key ID c105b9de: OK
Header SHA1 digest: OK (e9db7a50918ba3d42cbd7da1e8dc4fa6dac7949f)
V3 RSA/SHA1 Signature, key ID c105b9de: OK
MD5 digest: OK (bf01b4a34aafa0fbc2d28d741f6546aa)

有什么想法吗?有人遇到问题,我可以备份/恢复到服务器吗?

感谢您的帮助。

答案1

从 :http://kiteplans.info/2015/01/15/solved-bug-centos-yum-rpm-broken-by-nss-softokn-3-14-3-19-el6_6-update-error-rpmts_hdrfromfdno-error-rpmdbnextiterator-header-v3-rsasha1-signature-key-id-bad/

因此,如果您 yum update 只安装了其中一个软件包,那么您最终会得到损坏的 YUM 和 RPM。尝试运行 YUM 和 RPM 命令时,您可能会看到类似以下错误消息:错误:rpmts_HdrFromFdno:Header V3 RSA/SHA1 签名,密钥 ID xxx BAD 错误:rpmdbNextIterator:跳过 h# 1784 Header V3 RSA/SHA1 签名,密钥 ID xxx BAD 大多数情况下,您会安装 nss-softokn-3.14.3-19,但不会安装 nss-softokn-freebl-3.14.3-19

要解决此问题,您必须:

1.手动下载nss-softokn-freebl-3.14.3-19 yumdownloader nss-softokn-freebl 或 wget RPM

64 位服务器/x86_64 运行

wget ftp://195.220.108.108/linux/centos/6.6/updates/x86_64/Packages/nss-softokn-freebl-3.14.3-19.el6_6.x86_64.rpm

32 位服务器/i686 运行

wget ftp://195.220.108.108/linux/centos/6.6/updates/i386/Packages/nss-softokn-freebl-3.14.3-19.el6_6.i686.rpm

2. 提取 RPM

64 位服务器/x86_64 运行

rpm2cpio nss-softokn-freebl-3.14.3-19.el6_6.x86_64.rpm | cpio -idmv

32 位服务器/i686 运行

rpm2cpio nss-softokn-freebl-3.14.3-19.el6_6.i686.rpm | cpio -idmv

3. 将 .libfreeblpriv3.* 复制到正确位置

64 位服务器/x86_64 运行

cp ./lib64/libfreeblpriv3.* /lib64

32 位服务器/i686 运行

cp ./lib/libfreeblpriv3.* /lib

4. 重新运行 Yum Update 以更新 nss-softokn-freebl 并修复 YUM 和 RPM

yum 更新 如果您仍然有问题,您可能需要为 64 位服务器重新安装 yum,如下所示,32 位服务器只需找到 32 位版本的 rpm!但大多数服务器不需要这个:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-3.2.29-60.el6.centos.noarch.rpm

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-6.el6.centos.12.2.x86_64.rpm

rpm -ivh --nodeps yum-3.2.29-60.el6.centos.noarch.rpm

rpm -ivh yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm

rpm -ivh centos-release-6-6.el6.centos.12.2.x86_64.rpm

在尝试解决问题时,我还遇到了一些关于如何恢复损坏的 rpmdb 的问题,有两种方法:

首先,从相同的、完好的服务器或备份中复制一份 /var/lib/rpm 文件夹的正确副本 – 您有备份吗?

在良好的服务器上或从备份中:

tar -cf rpmbackup.tar /var/lib/rpm

然后将 tar 发送到坏服务器

在损坏的服务器上:

cd /var/lib
mv /var/lib/rpm /var/lib/rpm.bak
tar -xf /location/to/rpmbackup.tar

那你就可以出发了!

第二种方法是通过检查 rpm 安装日志重新安装所有曾经安装过的 rpm。请参阅下面的注释

错误报告:https://bugzilla.redhat.com/show_bug.cgi?id=1182337

相关内容