Ubuntu 22.04 sudo apt update缺少公钥

文章讲述了如何处理apt-get更新时因缺少公钥导致的错误,包括获取公钥、更新trusted.gpg文件,以及将公钥从过时环移到新目录以提升系统安全性的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缺少公钥导致 sudo apt update 报错

没有公钥,报错

获取缺少的公钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C

注意这里的 871920D1991BC93C 换成你自己缺少的密钥
获取公钥

会在 /etc/apt 目录下生成 trusted.gpg 文件
在这里插入图片描述

处理过时的 trusted.gpg 密钥环

再次执行 sudo apt update ,发现报警告信息。
在这里插入图片描述
警告信息表明,使用 apt-key 添加的 GPG 密钥存储在过时的 trusted.gpg 密钥环中。这种做法已经被弃用,因为它可能降低系统的安全性。所以现在推荐把签名公钥保存到 /etc/apt/trusted.gpg.d 目录。

查看当前的密钥

sudo apt-key list

apt-key list 指令输出
需要将该公钥(使用公钥id的后八位 991BC93C 表示)导出到 /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg 文件中

创建 trusted.gpg.d 文件夹

sudo mkdir trusted.gpg.d

导出当前的公钥

sudo apt-key export 991BC93C | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg

在这里插入图片描述

此时查看 /etc/apt/trusted.gpg.d/ 目录下生成了密钥文件
在这里插入图片描述

这时候我们再执行 sudo apt update ,就不会出现错误了。在这里插入图片描述

### 更改 Ubuntu 22.04 软件源并添加 GPG 密钥 在更改 Ubuntu 22.04 的软件源时,可能会遇到缺少公钥的问题。这是因为新的仓库可能需要特定的 GPG 密钥来验证其真实性。以下是解决此问题的方法: #### 添加 GPG 密钥 当更换到一个新的软件源时,通常需要导入该源对应的 GPG 密钥。可以通过以下命令完成这一过程: ```bash wget -qO - https://example.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/example-archive-keyring.gpg ``` 在此处替换 `https://example.com/gpg.key` 为目标仓库提供的实际密钥地址[^1]。 接着,在 `/etc/apt/sources.list.d/` 中创建或编辑相应的 `.list` 文件以配置新源,并指定刚刚导入的 GPG 密钥路径: ```bash echo "deb [signed-by=/usr/share/keyrings/example-archive-keyring.gpg] http://example.com/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/example.list ``` 更新本地包索引前,请确保已经正确设置了语言环境,这可以避免因区域设置错误引发的相关警告[^2]: ```bash sudo apt update && sudo apt upgrade -y ``` 如果出现类似于 `setlocale: LC_ALL: cannot change locale (en_US.UTF-8)` 的提示信息,则需按照如下方法处理: ```bash sudo apt install locales sudo locale-gen en_US.UTF-8 sudo dpkg-reconfigure locales ``` 最后一步是确认 Bash 补全工具已就绪以便于后续管理操作更加便捷高效[^3]: ```bash apt-get install bash-completion echo 'source <(kubectl completion bash)' >> ~/.bashrc source ~/.bashrc ``` 通过以上步骤即可妥善解决 Ubuntu 22.04 更新软件源过程中缺失 GPG 密钥所导致的一系列潜在问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值