如何解决 launchpad.net的公钥信任问题

本文提供了两个命令来解决在使用apt-get update时遇到的公钥问题。首先通过gpg命令接收指定的公钥,然后导出该公钥并将其添加到apt的密钥环中。
基本上是两句话:

1. gpg --keyserver keyserver.ubuntu.com --recv 7889D725DA6DEEAA(这个公钥就是在apt-get update时报出的公钥,每个可能都不一样,下面那个也是)

2.gpg --export --armor 7889D725DA6DEEAA | sudo apt-key add -

参考:
[url]http://osicn.blogspot.com/2009/02/how-to-slove-problem-of-pubkey-for.html[/url]
nvidia@ubuntu:~$ # 删除所有相关软件源配置 nvidia@ubuntu:~$ sudo rm -f /etc/apt/sources.list.d/{vscode,microsoft}*.list nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 清除所有Microsoft GPG密钥 nvidia@ubuntu:~$ sudo apt-key list | grep -B1 "Microsoft" | grep -E "^\s+" | tr -d '[:space:]' | sudo xargs -I{} apt-key del {} Warning: apt-key output should not be parsed (stdout is not a terminal) nvidia@ubuntu:~$ sudo rm -f /etc/apt/trusted.gpg.d/microsoft*.gpg nvidia@ubuntu:~$ sudo rm -f /usr/share/keyrings/microsoft.gpg nvidia@ubuntu:~$ # 创建密钥目录并设置权限 nvidia@ubuntu:~$ sudo mkdir -p /usr/share/keyrings nvidia@ubuntu:~$ sudo chmod 755 /usr/share/keyrings nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 下载并转换密钥(解决"gpg: error reading key") nvidia@ubuntu:~$ curl -sSL https://packages.microsoft.com/keys/microsoft.asc | \ > gpg --dearmor --output /usr/share/keyrings/microsoft.gpg gpg: 无法创建 ‘/usr/share/keyrings/microsoft.gpg’: 权限不够 gpg: 找不到有效的 OpenPGP 数据。 gpg: 解开字符封装时失败:权限不够 (23) Failed writing body nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 验证密钥完整性(应显示Microsoft指纹) nvidia@ubuntu:~$ gpg --show-keys --keyid-format LONG /usr/share/keyrings/microsoft.gpg gpg: 无法打开 ‘/usr/share/keyrings/microsoft.gpg’: 没有那个文件或目录 nvidia@ubuntu:~$ # 获取系统架构 nvidia@ubuntu:~$ ARCH=$(dpkg --print-architecture) nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 创建新的源文件 nvidia@ubuntu:~$ echo "deb [arch=$ARCH signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | \ > sudo tee /etc/apt/sources.list.d/vscode_official.list deb [arch=arm64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/code stable main nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 设置文件权限 nvidia@ubuntu:~$ sudo chmod 644 /etc/apt/sources.list.d/vscode_official.list nvidia@ubuntu:~$ # 强制刷新APT缓存 nvidia@ubuntu:~$ sudo rm -rf /var/lib/apt/lists/* nvidia@ubuntu:~$ sudo apt update --allow-insecure-repositories 获取:3 http://ports.ubuntu.com/ubuntu-ports focal InRelease [265 kB] 获取:4 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease [18.1 kB] ...... 64x64@2 Icons [29 B] 已下载 46.1 MB,耗时 27秒 (1,729 kB/s) 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 所有软件包均为最新。 W: GPG 错误:https://packages.microsoft.com/repos/code stable InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY EB3E94ADBE1229CF W: 仓库 “https://packages.microsoft.com/repos/code stable InRelease” 没有数字签名。 N: 无法认证来自该源的数据,所以使用它会带来潜在风险。 N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。 nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 修复依赖关系 nvidia@ubuntu:~$ sudo apt --fix-broken install -y 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 升级了 0 个软件包,新安装了 0 个软件包, 要卸载 0 个软件包,有 0 个软件包未被升级。 nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 安装VS Code nvidia@ubuntu:~$ sudo apt install code -y 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 code 已经是最新版 (1.105.1-1760482225)。 升级了 0 个软件包,新安装了 0 个软件包, 要卸载 0 个软件包,有 0 个软件包未被升级。 nvidia@ubuntu:~$ # 检查密钥状态(应显示Microsoft信息) nvidia@ubuntu:~$ gpg --list-keys --keyring /usr/share/keyrings/microsoft.gpg gpg: 密钥区块资源‘/usr/share/keyrings/microsoft.gpg’:没有那个文件或目录 nvidia@ubuntu:~$ nvidia@ubuntu:~$ # 测试安装 nvidia@ubuntu:~$ code --version 1.105.1 7d842fb85a0275a4a8e4d7e040d2625abbf7f084 arm64 nvidia@ubuntu:~$
最新发布
11-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值