首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储盐类堆栈?由于缺少GPG键,存储库出现错误消息“`Removing [.]失败。”

如何存储盐类堆栈?由于缺少GPG键,存储库出现错误消息“`Removing [.]失败。”
EN

Server Fault用户
提问于 2018-07-04 00:02:21
回答 1查看 5.1K关注 0票数 4

在RHEL 7.4系统上,我添加了盐类-最新回购如下:

代码语言:javascript
复制
yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

注意,除其他外,这将创建以下两个GPG密钥文件:

代码语言:javascript
复制
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt
/etc/pki/rpm-gpg/saltstack-signing-key

为便于以后参考,请注意CentOS键的指纹以f4a80eb5结尾:

代码语言:javascript
复制
# gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt

pub  4096R/F4A80EB5 2014-06-23 CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>
      Key fingerprint = 6341 AB27 53D7 8A78 A7C2  7BB1 24C6 A8A7 F4A8 0EB5

尝试存储库下载:

代码语言:javascript
复制
mkdir /root/foobar

reposync --gpgcheck --plugins --repoid=salt-latest --download_path=/root/foobar --newest-only --downloadcomps --delete --download-metadata

如果出现这样的错误,就会失败:

代码语言:javascript
复制
Removing babel-0.9.6-8.el7.noarch.rpm, due to missing GPG key.
Removing libyaml-0.1.4-11.el7_0.i686.rpm, due to missing GPG key.
Removing libyaml-0.1.4-11.el7_0.x86_64.rpm, due to missing GPG key.

因此,我手动下载所有失败的文件(在for-循环中),并检查其签名密钥的签名。它们都是一样的,举个例子,下面就是其中之一:

代码语言:javascript
复制
wget http://repo.saltstack.com/yum/redhat/7/x86_64/latest/base/babel-0.9.6-8.el7.noarch.rpm

rpm -K babel-0.9.6-8.el7.noarch.rpm

babel-0.9.6-8.el7.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#f4a80eb5)

注意,键PGP#f4a80eb5与上面引用的键F4A8 0EB5匹配。那么为什么它没有通过gpg检查呢?

我尝试过的事情包括:

  • 我编辑了/etc/yum.repos.d/salt-latest.repo并更改了gpgkey=行。这三种变体我都有同样的失败。据我所知,更改gpgkey=file:///etc/pki/rpm-gpg/saltstack-signing-key gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt gpgkey=file:///etc/pki/rpm-gpg/saltstack-signing-key,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt行没有影响:gpgkey=
  • 我试着不使用reposync运行--gpgcheck。它起作用了,但很明显,用这种方式使用它是不好的。存储库--插件--repoid=salt--最新的--下载_path=/root/foobar--最新的--仅限下载--删除--下载--元数据
  • 我想知道存储库是否因为密钥太弱而拒绝使用它?MD5。但我想不出任何方法来证实或否认这一点。
  • 我想知道钥匙是否真的有到期日?但我也找不到任何方法来证实或否认这一点。
EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-07-04 00:08:05

我无意中发现了答案!看起来,rpm必须将keystore放在与/etc/pki/rpm-gpg分开的地方,而且在回购文件中指定gpgkey=行似乎还不够。

完成此操作后,reposync工作,并正确验证所有文件的所有签名:

代码语言:javascript
复制
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt

也见在哪里安装自定义gpg密钥?。键存储在rpm数据库中,可以使用以下命令查询和删除:

代码语言:javascript
复制
List the installed keys
    rpm -qa gpg-pubkey*

Get info about a particular installed key
    rpm -qi gpg-pubkey-db42a60e

Remove a particular installed key
    rpm -e gpg-pubkey-db42a60e

与@sciurus的答复相反,这一信息不在手册页(至少在RHEL 7.4中没有)。

票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/919390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档