如何修复“无公钥可用”错误?
当我下载更新或安装新软件时,我收到这些警告,表示我没有公钥。 这只是出现了一天,我没有删除/添加一些东西来创建它。
发布:无法validation以下签名,因为公钥不可用:NO_PUBKEY 16126D3A3E5C1192
我试过: sudo apt-key update
,它适用于某些键,但其他键仍然缺失,我需要添加它们。
我需要帮助将新密钥和地址添加到所有密钥。 那些不在Ubuntu和launchpad中的。
获得密钥,第1部分
程序addgpg-apt
– 这是我的 – 只有当密钥在Ubuntu密钥服务器上时才会起作用,除非你专门指定你试图从哪个密钥服务器获取密钥。 它没有通过互联网找到PGP密钥所在的密钥服务器。
使用以下命令 :
sudo apt-get update | grep "NO_PUBKEY" | awk '{ system("addgpg-apt "$21) }'
将系统地遍历每行输出并将每个键发送到addgpg-apt
程序。 addgpg-apt
将尝试从Ubuntu密钥服务器获取密钥。
对于ubuntu.com或launchpad.net项目,它可以正常工作。 对于其他GPG密钥服务器的密钥,您需要在各自的密钥服务器中找到这些密钥的位置,然后使用addgpg-apt
和--keyserver
标志:
addgpg-apt --keyserver
然后,它将把钥匙放入你的APT钥匙圈。
addgpg-apt
程序可通过PPA获得
- 什么是PPA以及如何使用它们?
如果第一个命令失败,请尝试以下命令:
sudo apt-get update | grep "NO_PUBKEY" | awk '{ print $21) }' | xargs addgpg-apt
这将执行与上述相同的操作,仅以不同方式操作。
获得密钥,第2部分
我建议检查PGP密钥的其他非Ubuntu和非Launchpad存储库的站点,因为它们很可能列在那里。 找到每个后,您可以运行addgpg-apt --keyserver
,它将从这些存储库的密钥服务器下载。
试试这个:
sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com 16126D3A3E5C1192
其中’16126D3A3E5C1192’是失败的密钥
要么
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install launchpad-getkeys
安装后,要导入PPA的所有丢失的GPG密钥,只需使用以下命令:
sudo launchpad-getkeys