在自托管 apt 存储库中更新 PGP 密钥

在自托管 apt 存储库中更新 PGP 密钥

我们正在使用Sonatype Nexus Repository Manager托管apt存储库。GPG其中一个存储库的密钥最近已过期,需要更新。我认为生成新的密钥对就足够了(如描述在官方网站文档中),通过 Nexus UI 粘贴新私钥,apt-key add在客户端系统上粘贴新密码,然后粘贴新公钥,一切就绪了。然而,情况却并非如此apt updateNO_PUBKEY <old_id>我完全不知道从哪里获取信息,它错过了旧密钥,并且没有“同步”新密钥。我还尝试在调用之前apt删除目录的内容。我错过了什么?/var/lib/apt/lists/apt update

编辑:所有都在干净的docker中运行,其中只添加了新密钥apt-key add public.gpg.key和新存储库/etc/apt/sources.listecho "deb <repo_url> bionic main" >> /etc/apt/sources.list

答案1

我已成功解决了该问题。nexus apt 存储库创建了两个文件夹。一个文件夹名为,metadata另一个文件夹名为packagesmetadata文件夹中创建了文件ReleaseInReleaseRelease.gpg。在 UI 中更改密钥时不会自动重新生成这些文件。要强制重新生成这些文件,必须删除该文件夹并上传包。这将触发元数据文件夹的重新生成,其中包含所有相应文件。完成此操作后,密钥即可正常工作。

答案2

可以这样做:

  1. 在 repo 设置中更新 GPG 私钥
  2. 删除metadata/distsrepo 中的子目录
  3. apt-get update在连接到 repo 的某些客户端上运行。

此后元数据应该被更新。

相关内容