如何删除 yum repo GPG 密钥?

如何删除 yum repo GPG 密钥?

我在 Artifactory 中有一个自定义 RPM 存储库,并且最近启用了 GPG 签名密钥。

当我运行时,sudo yum check-updates系统提示我添加密钥:

Retrieving key from https://artifactory.example.com/myrepo/repodata/repomd.xml.key
Importing GPG key 0x12345678:
 Userid     : "John Doe <[email protected]>"
 Fingerprint: 1234 5678 90ab cdef 1234 5678 90ab cdef 1234 5678
 From       : https://artifactory.example.com/myrepo/repodata/repomd.xml.key

我添加了密钥,成功了。但是,我现在想消除密钥。我需要以编程方式(例如通过 Ansible)将密钥添加到多个服务器,因此我想重现与之前相同的行为(提示我添加密钥),以便我可以确认以编程方式添加密钥会改变此行为。

我尝试使用yum-config-manager来取消设置gpgkey,但行为仍然相同(yum 没有提示我接受密钥):

sudo yum-config-manager --setopt=artifactory.gpgkey='' --save

我还删除了 yum 缓存(sudo yum clean allsudo rm -rf /var/cache/yum)。

我怎样才能从 yum repo 配置中删除此密钥?

版本信息:

$ yum --version
3.4.3

答案1

使用 rpm 您可以列出密钥并将其删除。

[root@apps2 ~]# rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
gpg-pubkey-f4a80eb5-53a7ff4b    gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>)
gpg-pubkey-352c64e5-52ae6884    gpg(Fedora EPEL (7) <[email protected]>)
[root@apps2 ~]# rpm -e gpg-pubkey-352c64e5-52ae6884
[root@apps2 ~]# rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'
gpg-pubkey-f4a80eb5-53a7ff4b    gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>)
[root@apps2 ~]#

答案2

Yum 有一个 GPG 密钥环,用于支持 GPG 元数据签名的存储库。在我的系统上,此特定存储库的相关路径为:

  • /var/lib/yum/repos/x86_64/7/artifactory/gpgdir
  • /var/lib/yum/repos/x86_64/7/artifactory/gpgdir-ro

我能够从这些密钥环中删除 GPG 密钥:

sudo gpg --homedir /var/lib/yum/repos/x86_64/7/artifactory/gpgdir --delete-key 12345678
sudo gpg --homedir /var/lib/yum/repos/x86_64/7/artifactory/gpgdir-ro --delete-key 12345678

sudo yum check-update此时运行仍然没有提示我接受密钥。我运行了sudo yum clean metadata,然后sudo yum check-update再次提示我接受 GPG 密钥。

我在 PackageCloud 的页面上找到了YUM GPG 密钥有助于找到这个解决方案。

相关内容