在使用 RPM 包期间,我经常需要根据可用的 GPG 密钥验证签名。
使用
rpm -qip --nosignature <package.rpm> | grep Signature
给我一个密钥 ID,即:
Signature : RSA/SHA1, Mon 28. Aug 2019 06:00:00 AM CET, Key ID 1234567890abcdef
借此
gpg --with-fingerprint <RPM-GPG-KEY-package>
给我一个钥匙指纹:
Key fingerprint = 0987 6543 21FE DCBA 0987 6543 21FE 1234 5678 90AB CDEF
由于比较两个输出并不容易,如何获得提到的 Key ID 而不是整个指纹?
您可以使用导入 GPG 密钥
rpm --import GPGFILE
,然后运行rpmkeys --checksig foo.rpm
在研究过程中,我发现密钥 ID 通常是密钥指纹的最后 8 或 16 个字节。所以我想从输出中提取它们。如何做到这一点?
我发现以下似乎可行的方法:
密钥ID.sh