当我下载更新或安装新软件时,我会收到这些警告,说我没有公钥。这只是某一天出现的,我没有删除/添加任何内容,因此导致此问题。
发布:由于公钥不可用,无法验证以下签名:NO_PUBKEY 16126D3A3E5C1192
我已经尝试过:sudo apt-key update
它对一些键起作用,但其他键仍然缺失,我需要添加它们。
我需要帮助添加新密钥和所有密钥的地址。那些不在 Ubuntu 和启动板中的密钥。
答案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 <keyserver> <keyid>
然后它将获取密钥并将其放入您的 APT 密钥环中。
该addgpg-apt
计划是可通过 PPA 获得
如果第一个命令失败,试试这个:
sudo apt-get update | grep "NO_PUBKEY" | awk '{ print $21) }' | xargs addgpg-apt
这将执行与上述相同的操作,只是操作不同。
获取钥匙,第 2 部分
我建议检查其他非 Ubuntu 和非 Launchpad 存储库的 PGP 密钥站点,因为它们很可能列在那里。找到每个存储库后,您可以运行它,addgpg-apt --keyserver <keyserver> <keyid>
它会从这些存储库的密钥服务器下载。
答案2
尝试这个:
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