如何让 yum 使用已经导入的 gpg 密钥?

如何让 yum 使用已经导入的 gpg 密钥?

我正在尝试在yum.repos.d目录中添加外部存储库。该存储库的包和元数据使用 gpg 密钥进行签名。如果相关的话,我使用的是 CentOS 7.2

据我所知,设置存储库的传统方法是在存储库文件中包含指向 gpg 密钥的链接。

也就是说,example.repo里面的文件/etc/yum.repos.d包含以下行:

gpgkey = https://example.com/repo/key

然后,如果您运行yum update,您会收到[y/N]导入 GPG 密钥的提示,如果您运行,yum -y update则会自动导入密钥。到目前为止还算正常。

作为实验,我尝试从存储库文件中删除 gpg-key 下载链接,而是手动添加密钥。

wget -O key https://example.com/repo/key
rpm --import key
并验证
rpm -qa gpg-pubkey*

我的期望是这将能够在yum update不提出提示的情况下完成[y/N]。但它不起作用 - 我仍然收到提示,要求我导入已经导入的密钥。我还尝试从gpgkey存储库文件中删除该条目,但在这种情况下yum update只是抛出一个错误(因为我也有gpgcheck = 1repo_gpgcheck = 1)。

为什么这很重要?好吧,在我看来,如果您想自动化此过程,那么您需要信任下载密钥的 https 传输。这很好,但是 GPG 密钥除了验证软件包是否正确下载之外,并没有真正增加任何安全性。

简而言之,我认为任何一个我缺少一个技巧来让 yum 识别出我已经导入了密钥,或者除了普通的旧 https 之外,GPG 密钥实际上并没有添加太多内容。有什么线索吗?

答案1

是一种货物崇拜的解决方法,似乎适用于自动化密钥导入:

yum -q makecache -y --disablerepo='*' --enablerepo=THENEWREPO

答案2

使用导入的密钥rpm --import仅用于验证 RPM 包,而不是 YUM 存储库。yum将自己的密钥深藏在/var/lib/yum/repos.它为每个存储库保留一个单独的密钥环。

如果您确实不想在存储库安装时信任远程密钥,您可以做的就是单独下载密钥,然后将本地路径设置gpgkey为存储库的字段。然后它将使用充满存储库(受信任)密钥的本地文件。请记住,如果(当)钥匙被旋转时,您将需要手动去获取新钥匙。

相关内容