我们正在使用Sonatype Nexus Repository Manager
托管apt
存储库。GPG
其中一个存储库的密钥最近已过期,需要更新。我认为生成新的密钥对就足够了(如描述在官方网站文档中),通过 Nexus UI 粘贴新私钥,apt-key add
在客户端系统上粘贴新密码,然后粘贴新公钥,一切就绪了。然而,情况却并非如此apt update
。NO_PUBKEY <old_id>
我完全不知道从哪里获取信息,它错过了旧密钥,并且没有“同步”新密钥。我还尝试在调用之前apt
删除目录的内容。我错过了什么?/var/lib/apt/lists/
apt update
编辑:所有都在干净的docker中运行,其中只添加了新密钥apt-key add public.gpg.key
和新存储库/etc/apt/sources.list
,echo "deb <repo_url> bionic main" >> /etc/apt/sources.list
答案1
我已成功解决了该问题。nexus apt 存储库创建了两个文件夹。一个文件夹名为,metadata
另一个文件夹名为packages
。metadata
文件夹中创建了文件Release
、InRelease
和Release.gpg
。在 UI 中更改密钥时不会自动重新生成这些文件。要强制重新生成这些文件,必须删除该文件夹并上传包。这将触发元数据文件夹的重新生成,其中包含所有相应文件。完成此操作后,密钥即可正常工作。
答案2
可以这样做:
- 在 repo 设置中更新 GPG 私钥
- 删除
metadata/dists
repo 中的子目录 apt-get update
在连接到 repo 的某些客户端上运行。
此后元数据应该被更新。