![将密钥从旧版 trust.gpg 移至 Ubuntu 源的 usr/share/keyrings](https://linux22.com/image/1190230/%E5%B0%86%E5%AF%86%E9%92%A5%E4%BB%8E%E6%97%A7%E7%89%88%20trust.gpg%20%E7%A7%BB%E8%87%B3%20Ubuntu%20%E6%BA%90%E7%9A%84%20usr%2Fshare%2Fkeyrings.png)
在收到有关 apt-key 已被弃用的警告并认真研究签名文件、OpenPgp 标准、gpg 工具等之后(我是 Linux 新手,正在学习),我已设法将所有公钥从 etc/apt/trusted.d 文件夹移动到 usr/share/keyrings 单独的文件中,并将 [signed-by...] 添加到 souces.list.d 中的 ppa 源。
但是现在我尝试对 sources.list 文件中的 Ubuntu 存储库执行相同操作。我从 trust.gpg 文件中导出了列出的密钥并添加了 [signed-by..] 参数。然后我删除了 trust.gpg 文件。移动的密钥文件采用 ascii-dearmoured/binary gpg 格式。
deb [signed-by=/usr/share/keyrings/Ubuntu-moved-keyring.gpg] http://archive.ubuntu.com/ubuntu jammy main restricted
但当我跑步时apt 更新我收到错误
E: Conflicting values set for option Signed-By regarding source http://archive.ubuntu.com/ubuntu/ jammy: ...
使用 Ubuntu 系统工具,我恢复了默认设置,并恢复了 trust.gpg 文件,但又回到了原点 -apt 更新对密钥存储的传统方式有抱怨:
1 个软件包可以升级。运行“apt list --upgradable”即可查看。 W:http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease:密钥存储在旧的 trust.gpg 密钥环(/etc/apt/trusted.gpg)中,请参阅 apt-key(8) 中的 DEPRECATION 部分了解详情。 W:http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease:密钥存储在旧的 trust.gpg 密钥环(/etc/apt/trusted.gpg)中,请参阅 apt-key(8) 中的 DEPRECATION 部分了解详情。 W:http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease:密钥存储在旧的 trust.gpg 密钥环(/etc/apt/trusted.gpg)中,请参阅 apt-key(8) 中的 DEPRECATION 部分了解详情。 W:http://archive.ubuntu.com/ubuntu/dists/jammy-security/InRelease:密钥存储在旧的 trust.gpg 密钥环(/etc/apt/trusted.gpg)中,有关详细信息,请参阅 apt-key(8) 中的 DEPRECATION 部分。
我被难住了。我的理解是,这实际上并不构成使用其他发布商的泄露密钥交叉签名源的任何威胁,因为我的 trust.gpg 文件仅包含 Ubuntu 密钥,但我仍然想解决这个问题。
答案1
解决这个问题的“黑客”方法是运行:
mv /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d/
这应该可以满足apt
。更正确的方法是再次获取官方的 Ubuntu 密钥文件 - 但我实际上并不知道正确的步骤。
另请参阅此主题。