如何修复“无公钥可用”错误?

当我下载更新或安装新软件时,我收到这些警告,表示我没有公钥。 这只是出现了一天,我没有删除/添加一些东西来创建它。

发布:无法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