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

Sau*_*ode 8 security yum centos gpg package-management

我正在尝试在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该密钥,则会自动导入该密钥。到目前为止一切正常。

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

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

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

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

简而言之,我认为要么我错过了一个让 yum 认识到我已经导入密钥的技巧,要么GPG 密钥除了普通的旧 https 之外并没有增加太多。有什么线索吗?

Dav*_*nic 2

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

yum -q makecache -y --disablerepo='*' --enablerepo=THENEWREPO
Run Code Online (Sandbox Code Playgroud)