记录一次 Ubuntu PPA 密钥验证错误的完整解决方案

系统:

命令: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 

成功!!!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
金语的wb的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容