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 = 1
和repo_gpgcheck = 1
)。
为什么这很重要?好吧,在我看来,如果你想自动化这个过程,那么你需要信任下载密钥的 https 传输。这很好,但是除了验证包下载是否正确之外,GPG 密钥并没有真正增加任何安全性。
简而言之,我认为要么我错过了一个让 yum 认识到我已经导入密钥的技巧,要么GPG 密钥除了普通的旧 https 之外并没有增加太多。有什么线索吗?
这是一个货物崇拜的解决方法,似乎适用于自动化密钥导入:
yum -q makecache -y --disablerepo='*' --enablerepo=THENEWREPO
Run Code Online (Sandbox Code Playgroud)