最近我在运行时注意到一些问题apt
,系统会警告我密钥环已弃用:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
8 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: https://packages.microsoft.com/repos/edge/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: https://download.sublimetext.com/apt/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
这不会阻止我执行更新,但我更希望在更新系统时看不到这一点。我们应该如何存储受信任的 GPG 密钥?
解决此问题的一种方法是从已弃用的密钥环中导出 GPG 密钥并将其存储在
/usr/share/keyrings
. 幸运的是,这并不难:打开终端(如果尚未打开)
列出现有键:
从这里,我们可以导出一个密钥:
注意:该
BE1229CF
值来自pub
代码的最后 8 个字符。可能会出现以下消息:
现在我们可以为存储库更新我们的 apt 源文件(例如,
/etc/apt/sources.list.d/microsoft.list
),添加一个signed-by
标签:更新
apt
以确认消息消失:删除原始签名:
这可以通过每个警告消息来完成。一旦完成,
apt
将不再抱怨。尝试这个
sudo apt update
修复由...生成的这些警告消息的简单方法注意:这些警告消息可以由“其他软件”选项卡中任何启用的repo 或 ppa生成。
Software & Updates
示例修复:
对于此警告消息
sudo apt update
...我们查看
sudo apt-key list
并找到 xbmc 的此条目...然后我们将此条目转换为 .gpg 文件,使用上面的最后 8 个数字字符...
对生成的每条警告消息重复上述命令
sudo apt update
。注意:部分取自此处和此处已接受的答案。
考虑到提供的所有好的建议,我制作了一个辅助 oneliner 来自动化所有键的过程:
我用下面的一些命令解决了它。
已解决,密钥存储在 metasploit 安装上的旧的trusted.gpg 密钥环(/etc/apt/trusted.gpg)中