ubuntu apt 命令报错 Key is stored in legacy trusted.gpg keyring

问题

执行 apt 相关命令报错,如下

apt-get update
Hit:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease
Hit:2 http://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease
Hit:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates InRelease
Hit:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security InRelease
Hit:6 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease
Get:7 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  InRelease [1,484 B]
Hit:8 https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64  InRelease
Hit:9 https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64  InRelease
Fetched 1,484 B in 2s (800 B/s)
Reading package lists... Done
W: http://mirrors.aliyun.com/kubernetes/apt/dists/kubernetes-xenial/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu/dists/bionic/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://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64/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://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64/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://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

解决

首先,列出所有添加到你系统中的 GPG 密钥。

apt-key list

这将显示一个存储在你系统中的巨大的密钥列表。你在这里要做的是寻找与警告信息相关的密钥。
注意告警中的这句话 Key is stored in legacy trusted.gpg,意思是存在 /etc/apt/trusted.gpg 文件中的密钥有问题。从以下输出可知,有 5 个问题密钥。依次导出到 /etc/apt/trusted.gpg.d/ 目录下即可。

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

pub   rsa4096 2015-08-12 [SC]
      2388 FF3B E10A 76F6 38F8  0723 FCAE 110B 1118 213C
uid           [ unknown] Launchpad PPA for Graphics Drivers Team

pub   rsa4096 2017-09-28 [SCE]
      C95B 321B 61E8 8C18 09C4  F759 DDCA E044 F796 ECB0
uid           [ unknown] NVIDIA CORPORATION (Open Source Projects) <cudatools@nvidia.com>

pub   rsa2048 2021-05-04 [SC]
      35BA A0B3 3E9E B396 F59C  A838 C0BA 5CE6 DC63 15A3
uid           [ unknown] Artifact Registry Repository Signer <artifact-registry-repository-signer@google.com>

pub   rsa2048 2022-05-21 [SC]
      A362 B822 F6DE DC65 2817  EA46 B53D C80D 13ED EF05
uid           [ unknown] Rapture Automatic Signing Key (cloud-rapture-signing-key-2022-03-07-08_01_01.pub)
sub   rsa2048 2022-05-21 [E]

先看 pub rsa4096 2017-02-22 [SCEA] 这个密钥,你应该看到 pub 后一行的最后 8 个字符 0EBF CD88(不包括空格):
因此,从 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 这行中,我将提取最后8个字符 0EBF CD88,去掉空格,然后用它来导入 /etc/apt/trusted.gpg.d 目录下专用文件中的 GPG 密钥:

apt-key export 0EBFCD88 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg

我在这里创建了一个新的文件 docker.gpg,我把它命名为 docker.gpg 是因为它与我之前安装的 docker 应用有关。文件名并不重要,但它对识别有好处。
同理,导入其他问题密钥,文件名随意。

apt-key export 1118213C | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/Launchpad.gpg
apt-key list
apt-key export F796ECB0 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cuda-tool.gpg
apt-key export DC6315A3 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/Artifact.gpg
apt-key export 13EDEF05 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cloud-rapture.gpg
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值