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