如果包中缺少GPG签名或由于缺少密钥而无法验证GPG签名,我如何强制rpm
和yum
失败?对于下面的示例,假设RPM已经签名,但密钥尚未安装。
对于RPM,我看到了一个警告,但是我希望它失败,这样我就不得不手动安装签名密钥。
# rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
gpg-pubkey-c105b9de-4e0fd3a3 --> gpg(CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>)
# rpm -ivh http://yum.example.com/company-release-el-6.noarch.rpm
Retrieving http://yum.example.com/company-release-el-6.noarch.rpm
warning: /var/tmp/rpm-tmp.3VmFk2: Header V4 RSA/SHA1 Signature, key ID 3bd6ec30: NOKEY
Preparing... ########################################### [100%]
1:company-release ########################################### [100%]
使用yum时,我没有看到与签名密钥未安装相关的警告。
# yum install -vy http://yum.example.com/company-release-el-6.noarch.rpm
是否有其他标志可以传递给这些命令,或者可以修改配置设置以更改行为?或者必须在安装之前下载RPM并运行rpm --checksig
?
发布于 2015-02-08 14:12:52
了解GPG检查包的要点是GPG签名嵌入包中,GPG密钥存储在rpmdb中。没有安全API来问“用”您只能问“您只能问”的包X是什么密钥,而是用rpmdb中的一个密钥签名的包X和“rpmdb中是否存在密钥Y”。还请注意,这意味着包只能由一个键签名,而更改签名会更改包。
Yum从配置为"gpgcheck = 1“的存储库下载包时执行许多步骤(默认值)。
发布于 2015-09-03 07:40:17
将localpkg_gpgcheck=1
放入/etc/yum.conf,并确保始终要安装rpms。
如果您有本地文件系统的rpm,请执行以下操作
yum install <rpm-on-local-filesys>
确保您还在/etc/yum.store.d中的所有repos中设置了这些
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/SOME-APPROVED-GPG-KEY
正如您所提到的,通过rpm安装的最好方法是发出警告,并且无法将其配置为拒绝在不存在的GPG密钥上安装。
https://unix.stackexchange.com/questions/183363
复制相似问题