如何获取 yum repo 签名密钥的到期日期

如何获取 yum repo 签名密钥的到期日期

我最近的一个包签名密钥过期了,导致一些自动更新无法安装,因此现在我正在设置监控,以确保如果这种情况再次发生,我们会收到警报。

在 Debian 系统上,我可以使用 apt-key 显示所有 repo 密钥及其到期日期(如果有),但找不到如何在 CentOS 上对 yum 执行等效操作

我可以使用以下方法获取一些关键信息:

rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'

但这并没有显示到期日期 - 知道如何提取这些信息吗?

答案1

在 Red Hat 衍生的系统上,GPG 密钥也以 ASCII 格式存储在目录中/etc/pki/rpm-gpg-keys。您可以从那里检查任何密钥。

例如在 CentOS 8 上:

[root@localhost ~]# gpg /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial 
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa4096 2019-05-03 [SC]
      99DB70FAE1D7CE227FB6488205B555B38483C65D
uid           CentOS (CentOS Official Signing Key) <[email protected]>

您可以使用-v查看更多详细信息,在旧版本的 gpg 上您需要这样做。此示例来自 CentOS 7。

[root@localhost ~]# gpg -v /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
Version: GnuPG v1.4.5 (GNU/Linux)
pub  4096R/F4A80EB5 2014-06-23 CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>
sig        F4A80EB5 2014-06-23   [selfsig]
gpg: armor header: 

这些都没有到期日期,但是有到期日期或已经过期的密钥将显示到期日期。

这是一个未来有效期的密钥:

gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa2048 2020-01-21 [SC] [expires: 2032-01-18]
      D25402AB23709F67CDF72CBFB413ACAD6275F250
uid           EuroLinux 8 GPG RPM sign key <[email protected]>
sub   rsa2048 2020-01-21 [E] [expires: 2032-01-18]

这是一个已经过期的密钥:

gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa2048 2016-05-20 [SC] [expired: 2019-05-20]
      36EBEB08D346B0A85B58E140EE788F495250AEF3
uid           The UnitedRPMs Project (Key for UnitedRPMs infrastructure) <[email protected]>
sub   rsa2048 2016-05-20 [E] [expired: 2019-05-20]

可选软件包distribution-gpg-keys包含来自各种不同 Linux 发行版和存储库的 GPG 密钥。安装此软件包后,这些密钥可在目录中找到/usr/share/distribution-gpg-keys

相关内容