可以通过以下方式导入密钥:
rpm-导入/ path / to / key
但是,以后如何知道是否已导入此密钥?尝试重新导入它会失败并显示错误,我正在尝试避免这种情况,因为我正在使用Puppet安装密钥。
可以通过以下方式导入密钥:
rpm-导入/ path / to / key
但是,以后如何知道是否已导入此密钥?尝试重新导入它会失败并显示错误,我正在尝试避免这种情况,因为我正在使用Puppet安装密钥。
Answers:
您可以使用再次检查密钥是否已导入rpm -qi gpg-pubkey-<version>-<release>
。如果已安装,rpm将为您提供有关它的所有信息,如果没有,它将以返回值1退出,因此您可以向木偶配方添加一个unless
参数:
exec { "rpm --import /path/to/package":
# ...
unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}
KEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
导入的每个密钥都会添加一个rpmdb条目gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>
。只需gpg-pubkey
在rpmdb中检查该名称()和适当的版本(十六进制的密钥指纹的前8个字符)即可。
rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1
(参考资料,包括如何获取FINGERPRINT
:robinbowes.com/article.php/20081107174415581)
KEYFILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release; KEYID=$(echo $(gpg --throw-keyids < $KEYFILE)|cut -c11-18|tr [A-Z] [a-z]); rpm -q gpg-pubkey-$KEYID