当我下载更新或安装新软件时,我收到这些警告,提示我没有公钥。这只是有一天出现,我没有删除/添加一些东西来创建它。
发布:无法验证以下签名,因为公钥不可用:NO_PUBKEY 16126D3A3E5C1192
我试过:sudo apt-key update它对某些键有效,但其他键仍然丢失,我需要添加它们。
我需要帮助将新密钥和地址添加到所有密钥。那些不在 Ubuntu 和启动板中的。
该程序addgpg-apt- 这是我的 - 仅当密钥位于 Ubuntu 密钥服务器上时才有效,除非您特别指定您尝试从哪个密钥服务器获取密钥。它不会访问互联网并查找 PGP 密钥所在的密钥服务器。
sudo apt-get update | grep "NO_PUBKEY" | awk '{ system("addgpg-apt "$21) }'
Run Code Online (Sandbox Code Playgroud)
将系统地检查每一行输出并将每个键发送到addgpg-apt程序。addgpg-apt将尝试从 Ubuntu 密钥服务器获取密钥。
对于 ubuntu.com 或 launchpad.net 项目,它可以正常工作。对于其他 GPG 密钥服务器的密钥,您需要在各自的密钥服务器中找到这些密钥的位置,然后addgpg-apt与--keyserver每个密钥一起使用:
addgpg-apt --keyserver <keyserver> <keyid>
Run Code Online (Sandbox Code Playgroud)
然后,它将获取密钥并将它们放入您的 APT 密钥环中。
该addgpg-apt程序可通过 PPA 获取
如果第一个命令失败,请尝试以下命令:
sudo apt-get update | grep "NO_PUBKEY" | awk '{ print $21) }' | xargs addgpg-apt
Run Code Online (Sandbox Code Playgroud)
这将执行与上面相同的操作,只是操作不同。
我建议检查网站上其他非 Ubuntu 和非 Launchpad 存储库的 PGP 密钥,因为它们很可能列在那里。找到每一个后,您可以运行它addgpg-apt --keyserver <keyserver> <keyid>,它将从这些存储库的密钥服务器下载。