可以通过以下方式导入密钥:
rpm --导入/路径/到/密钥
但是稍后如何判断您是否已经导入了该密钥呢?尝试重新导入它将失败并出现错误,我试图避免这种情况,因为我正在使用 Puppet 来安装密钥。
答案1
您可以使用 仔细检查密钥是否已导入rpm -qi gpg-pubkey-<version>-<release>
。如果已安装,rpm 将为您提供有关它的所有信息,如果没有,它将退出并返回值 1,因此您可以向您的 puppet Recipe 添加一个unless
参数:
exec { "rpm --import /path/to/package":
# ...
unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}
答案2
导入的每个密钥都会添加一个 rpmdb 条目gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>
。只需gpg-pubkey
在 rpmdb 中检查该名称 ( ) 和相应的版本(十六进制密钥指纹的前 8 个字符)即可。
答案3
如果您只想验证密钥是否已导入(而不以编程方式处理此信息),您可以像这样列出所有密钥:
rpm -qi gpg-pubkey-\* | grep -E ^Packager
或者对于 ids:
rpm -qi gpg-pubkey-\* | grep -E "^Version "
这对许多人来说似乎很明显,但我想对某些人来说,这是对问题(至少是标题)的更直接的回答。
答案4
对于我来说(在 Oracle Linux 7 上),有必要手动将其复制到:
/var/lib/rpm/pubkeys/RPM-GPG-KEY-${REPONAME}.key
我什至可以导入公钥两次,没有错误消息,但验证仍然失败。但我还没有找出原因。也许下次我会尝试:
yum makecache
据报道有时会有帮助,我希望我能找到一些关于什么在哪里、什么时候发生的清晰文档,而不必使用 strace 和 Google。
我希望这可以帮助别人...