系统:
命令:sudo apt update
报错:Err:15 https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 71DAEAAB4AD4CAB6 NO_PUBKEY 4F4EA0AAE5267A6C
原因:
PPA 密钥错误原因分析
当您在 Ubuntu 20.04 中添加第三方 PPA(个人软件包存档)时,可能会遇到以下两种常见的密钥错误:
NO_PUBKEY 错误:系统缺少验证软件包签名的公钥
密钥服务器连接失败:无法从默认密钥服务器下载公钥
🛠️ 手动导入 PPA 密钥的方法
方法一:使用替代密钥服务器
当默认的 keyserver.ubuntu.com 无法连接时,可以使用以下替代服务器
# 导入单个密钥
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 71DAEAAB4AD4CAB6
# 批量导入多个密钥
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 71DAEAAB4AD4CAB6 4F4EA0AAE5267A6C
方法二:通过 HTTP 直接下载密钥
如果密钥服务器完全无法访问,可以使用 wget 或 curl 直接下载:
# 使用 wget 下载并导入
wget -q -O - https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x71DAEAAB4AD4CAB6 | sudo apt-key add -
# 使用 curl 下载并导入
curl -sSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x71DAEAAB4AD4CAB6" | sudo apt-key add -
方法三:从软件源官网获取
某些 PPA 在其官方网站提供直接的密钥下载链接,您可以访问对应的 Launchpad 页面查找。
📋 具体操作步骤
步骤 1:清理 APT 缓存
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
步骤 2:导入缺失的密钥
根据您的错误信息,需要导入以下两个密钥:
# 导入第一个密钥
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 71DAEAAB4AD4CAB6
# 导入第二个密钥
sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 4F4EA0AAE5267A6C
步骤 3:验证密钥导入
# 列出所有已导入的密钥
sudo apt-key list
# 检查特定 PPA 的密钥
sudo apt-key list | grep -A 2 -B 2 "ondrej"
步骤 4:更新软件源
sudo apt update
上面是互联网检索的结果,尝试后,不行!!!
可能是我的虚拟机走的win机器的网络地址,网络到 keyserver不通。
不想折腾了,直接浏览器访问:https://keyserver.ubuntu.com/

输入你想要下载的公钥,search

下载下来是一个 asc 后缀的文件
直接通过命令:
sudo apt-key add key.asc ##key要换成自己的
导入asc文件,之后重新执行命令:
sudo apt update
成功!!!
















暂无评论内容