如果大家在使用sudo apt update时出现以下错误:
:~$ sudo apt update [sudo] ts 的密码: 命中:1 http://archive.ubuntu.com/ubuntu impish InRelease 获取:2 http://cn.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB] 错误:2 http://cn.archive.ubuntu.com/ubuntu bionic-updates InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32 命中:3 http://archive.ubuntu.com/ubuntu impish-updates InRelease 命中:4 http://archive.ubuntu.com/ubuntu impish-backports InRelease 命中:5 http://archive.ubuntu.com/ubuntu impish-security InRelease 已下载 88.7 kB,耗时 14秒 (6,354 B/s) 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 有 1157 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。 W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:http://cn.archive.ubuntu.com/ubuntu bionic-updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32 W: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/bionic-updates/InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32 W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。
输入以下命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 公钥
公钥就是:3B4FE6ACC0B21F32(实际看自己的是什么)
如果有多个公钥需要导入只需在命令后加个空格再输入就好了如:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 公钥 公钥 公钥
执行后公钥就被导入了,再使用sudo apt update就没问题了
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). Executing: /tmp/apt-key-gpghome.F2UTq1fH71/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 gpg: 密钥 3B4FE6ACC0B21F32:公钥 “Ubuntu Archive Automatic Signing Key (2012)” 已导入 gpg: 处理的总数:1 gpg: 已导入:1
参考:apt-get update 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32_longtype的博客-CSDN博客



