AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 919390
Accepted
Edward Ned Harvey
Edward Ned Harvey
Asked: 2018-07-04 16:02:21 +0800 CST2018-07-04 16:02:21 +0800 CST 2018-07-04 16:02:21 +0800 CST

如何重新同步 saltstack?reposync 失败并显示错误消息“正在删除 [...],因为缺少 GPG 密钥。”

  • 772

在 RHEL 7.4 系统上,我添加了 salt-latest repo,如下所示:

yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm

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

/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt
/etc/pki/rpm-gpg/saltstack-signing-key

供以后参考,请注意 CentOS 密钥的指纹以 f4a80eb5 结尾:

# 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) <[email protected]>
      Key fingerprint = 6341 AB27 53D7 8A78 A7C2  7BB1 24C6 A8A7 F4A8 0EB5

尝试重新同步下载:

mkdir /root/foobar

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

它失败并出现以下错误:

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 循环中)并检查其签名密钥的签名。它们都是一样的,所以这里只是其中之一:

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=行没有效果:

    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
    
  • 我尝试在reposync没有--gpgcheck. 它有效,但显然,以这种方式使用它是不好的。

    reposync --plugins --repoid=salt-latest --download_path=/root/foobar --newest-only --downloadcomps --delete --download-metadata
    
  • 我想知道 reposync 是否因为太弱而拒绝使用密钥?MD5。但我想不出任何方式来证实或否认这一点。

  • 我想知道密钥是否真的有过期日期?但我也找不到任何方法来确认或否认这一点。

saltstack
  • 1 1 个回答
  • 4518 Views

1 个回答

  • Voted
  1. Best Answer
    Edward Ned Harvey
    2018-07-04T16:08:05+08:002018-07-04T16:08:05+08:00

    我偶然发现了答案!看来,rpm必须将密钥库与 . 分开,并且在 repo 文件中指定/etc/pki/rpm-gpg该行似乎不够。gpgkey=

    执行此操作后,reposync可以正常工作并正确验证所有文件的所有签名:

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-Salt
    

    另请参阅rpm 在哪里安装自定义 gpg 密钥?. 密钥存储在 rpm 数据库中,可以使用以下命令查询和删除:

    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 中)。

    • 4

相关问题

  • 如果 SaltStack 目录是 /srv/salt 的子目录,会有什么问题吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve