RHEL/CentOS 7 yum repo gpg 密钥说明

RHEL/CentOS 7 yum repo gpg 密钥说明

我不明白怎么办gpg 密钥可以用于从存储库下载的一千个 rpm 中的任何一个吗?例如,在 RHEL/Centos 7.x 中

  • 安装 EPEL(企业 Linux 的额外软件包);结果/etc/yum.repos.d/epel.repo包含gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  • 好的,那就是gpg 密钥,在一个文件中,这对于从 EPEL 存储库下载的任何 rpm 有何作用?
  • 我以为钥匙包含在 .rpm 标头中,并且该密钥是根据该 rpm 的内容生成的。但所有的转速都是不同的,所以不应该有不同的钥匙在每个转速?如何/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7应用于从 EPEL 存储库网站下载的任何内容?

答案1

RPM 和存储库签名验证基于 GPG 的非对称加密,使用密钥对。RPM-GPG-KEY-EPEL-7是密钥的公共部分;还有一个私人部分,这是一个严格保守的秘密。推送到 EPEL 存储库的 RPM 以及存储库元数据本身均使用密钥的私有部分进行签名。yum( 和dnf) 可以使用密钥的公共部分验证签名。

RPM 存储其自己的签名,而不是用于签名的密钥。

分离背后的想法是它允许带外验证。如果 RPM 带有它们的签名和用于验证它的密钥,则任何有权访问存储库的人都可以将 RPM 推送到那里并yum接受它。由于密钥存储在本地,yum因此可以验证签名是否是由有权访问私钥的人进行的,这提供了比包存在于给定存储库中更强有力的保证。本地系统中存储库的配置显示“从该基本 URL 检索包,并另外验证它们是否由该密钥签名”(在文件中.repogpgcheck如果启用了包签名验证,则强制进行验证,repo_gpgcheck如果启用则强制进行存储库元数据验证)已启用)。

相关内容