我的 Fedora 26 系统仍然安装了 Fedora 25 的 rpmkeys 和 Fedora 25 的 RPMFusion:
$ rpm -qa gpg-pubkey --qf "%{version}-%{release} %{summary}\n"
fdb19c98-56fd6333 gpg(Fedora 25 Primary (25) <fedora-25-primary@fedoraproject.org>)
7fac5991-4615767f gpg(Google, Inc. Linux Package Signing Key <linux-packages-keymaster@google.com>)
64dab85d-57d33e22 gpg(Fedora 26 Primary (26) <fedora-26-primary@fedoraproject.org>)
fa7a179a-562bcd6e gpg(RPM Fusion nonfree repository for Fedora (25) <rpmfusion-buildsys@lists.rpmfusion.org>)
6806a9cb-562bce39 gpg(RPM Fusion free repository for Fedora (25) <rpmfusion-buildsys@lists.rpmfusion.org>)
d38b4796-570c8cd3 gpg(Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>)
Run Code Online (Sandbox Code Playgroud)
dnf 系统升级几乎简单得令人不安。它没有对键进行任何特殊处理。包含 Fedora 密钥的软件包看起来也非常简单,并且没有隐藏任何对密钥的特殊处理。因此,我希望dnf system-upgrade
提示接受新密钥,因为这dnf
通常是这样做的,但它永远不会导致任何密钥被删除。
编辑:到目前为止,我已经将 Fedora 从 26 -> 27 -> 28 升级,并且 Fedora 25 密钥仍然保留。
如果您想解决此问题,最好的机会是在发行版升级之前。您可以删除所有rpm 密钥并使用 重新开始rpm -e --allmatches gpg-pubkey-*-*
。这样比较安全;如有必要,始终可以重新安装 rpmkeys。Fedora 保留所有可用的 rpmkey /etc/pki/rpm-gpg/
,包括所有旧的。
某些第三方存储库配置(例如 Google 的配置)必须通过 HTTPS 重新下载丢失的 rpmkey。即通过hole-y Web PKI 进行身份验证。这看起来有些次优。我有点怀疑它是否实现了证书固定。
GNOME Software / PackageKit 路线有点晦涩难懂。当您使用 PackageKit 而不是 时dnf
,我的理解是PackageKit 使用自己的信任机制来代替 RPM 的。该机制看起来会在发行版升级后立即忽略旧密钥。
奇怪的是,看起来 PackageKit 甚至根据 Fedora 的版本将第三方密钥存储在一个目录下(/var/cache/PackageKit/28/metadata/google-chrome/...
)。这表明 PackageKit 无论如何都会像 Google 一样通过 HTTPS 重新下载密钥。因此,如果您使用任何基于 PackageKit 的 GUI,则很难对此采取任何措施。
Debian 与 Fedora 在这里进行了对比。我确信我已经看到 Debian 删除了旧的 Debian 密钥(也许部分是当我查看我的文件历史记录时etckeeper
)。我还没有研究过 Debian 上的 PackageKit。据我所知,apt
没有dnf
通过 HTTPS 下载缺失的第三方签名密钥的“功能”。
归档时间: |
|
查看次数: |
500 次 |
最近记录: |