在 risc64 上设置 debian 存档密钥:新密钥但不包含用户 ID

在 risc64 上设置 debian 存档密钥:新密钥但不包含用户 ID

我有一个西贝德荔枝房车运行 Debian 映像,但由于缺少密钥而无法安装软件。

我已遵循包裹认证说明但我收到此错误:

root@sipeed:/etc/apt# gpg --keyserver hkps://keys.openpgp.org --recv-keys 0xE852514F5DF312F6
gpg: key E852514F5DF312F6: new key but contains no user ID - skipped
gpg: Total number processed: 1
gpg:           w/o user IDs: 1

我的sources.list文件包含:

deb http://ftp.ports.debian.org/debian-ports/ sid main

命令apt update返回

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E852514F5DF312F6

答案1

如果无法导入 gpg 密钥,可以debian-ports-archive-keyring手动安装。

wget http://ftp.us.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2022.02.15_all.deb
sudo dpkg -i debian-ports-archive-keyring_2022.02.15_all.deb

或者使用:

 wget -O - https://www.ports.debian.org/archive_2022.key |sudo  apt-key add -

正如在Debian 端口网页

答案2

包认证

如果你想 apt 验证下载的包,你可以 安装debian-ports-archive-keyring包裹或者手动将 Debian ports 存档密钥导入到 apt [...]

而不是尝试查看 GPG 密钥是如何被错误处理的并考虑到使用apt-key已被弃用并且可能很快就会消失,另一种方法还需要一个单独运行的 Debian 系统(任何体系结构,因为该软件包没有体系结构,并且至少稳定的释放)可以使用。我宁愿安装为存储库提供身份验证方法的包:debian-ports-archive-keyring无需知道它是如何具体实施或将来可能发生变化的。

为了引导信任源并避免先有鸡还是先有蛋的信任问题,可以要求其他 Debian 系统提供有效软件包的信息。因此,下面的命令应该在正确验证其存储库源的其他 Debian 系统上运行(不需要是 root,但 root 应该apt update最近执行过):

$ apt-get --print-uris --reinstall install debian-ports-archive-keyring
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  debian-ports-archive-keyring
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.7 kB of archives.
After this operation, 52.2 kB of additional disk space will be used.
'http://deb.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2022.02.15%7edeb11u1_all.deb' debian-ports-archive-keyring_2022.02.15~deb11u1_all.deb 29692 MD5Sum:698ade2c82f6319d63a491231c4f0417

这提供了检索包的位置,而不是尝试下载和安装它,并且还提供了大小和校验和,以验证这是正确的包。它将通过验证..._bullseye_InRelease(或其他版本而不是牛眼)文件的 GPG 签名来自行验证此信息,该签名涵盖了文件的有效性..._main_binary-XXX_Packages(XXX 是其他 Debian 系统的架构,这对于软件包来说并不重要)没有架构)提供目标包的信息。这两个文件都存在于/var/lib/apt/lists/.

这允许通过任何方式和在任何地方(通过稍微改变 URL)下载包debian-ports-archive-keyring_2022.02.15~deb11u1_all.deb,然后在这种情况下验证其大小和校验和md5sum

下载并验证后,可以使用此软件包将其安装在目标系统上dpkg -i ...(它不依赖任何东西,这可以方便地避免必须为每个依赖项递归地执行此方法,如果存在具有架构的软件包,这将更加困难),然后系统像往常一样升级。debian-ports-archive-keyring可能会在此过程中升级。

相关内容