如何刪除 yum 儲存庫 GPG 金鑰?

如何刪除 yum 儲存庫 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 儲存庫配置中刪除此金鑰?

版本資訊:

$ 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 金鑰有助於達成此解決方案。

相關內容