我使用 Software Sources 程序添加了一些额外的存储库。但是当我重新加载包数据库时,出现如下错误:
W:GPG 错误:http : //ppa.launchpad.net trusty InRelease:以下签名无法验证,因为公钥不可用:NO_PUBKEY 8BAF9A6F
apt-key
根据官方的 Ubuntu 文档,我知道我可以在终端中修复它。但我希望以图形方式进行。有没有办法在不使用终端的情况下做到这一点?
kar*_*k87 741
在终端中执行以下命令
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>
Run Code Online (Sandbox Code Playgroud)
<PUBKEY>
您丢失的存储库公钥在哪里,例如8BAF9A6F
.
然后更新
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
替代方法:
sudo gpg --keyserver pgpkeys.mit.edu --recv-key <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
请注意,当您使用这样导入密钥时,apt-key
您是在告诉系统您信任您正在导入的密钥来签署您的系统将使用的软件。除非您确定密钥确实是包分发程序的密钥,否则不要这样做。
mon*_*ker 252
到目前为止,处理这个问题的最简单方法是使用 Y-PPA-Manager(它现在将launchpad-getkeys
脚本与图形界面集成)。
要安装它,首先为此程序添加 webupd8 存储库:
sudo add-apt-repository ppa:webupd8team/y-ppa-manager
Run Code Online (Sandbox Code Playgroud)
更新您的软件列表并安装 Y-PPA-Manager:
sudo apt-get update
sudo apt-get install y-ppa-manager
Run Code Online (Sandbox Code Playgroud)
运行 y-ppa-manager(即输入y-ppa-manager
然后按回车键)。
当 y-ppa-manager 主窗口出现时,单击“高级”。
从高级任务列表中,选择“尝试导入所有丢失的 GPG 密钥”,然后单击“确定”。
你完成了!正如警告对话框在您开始操作时所说的那样,这可能需要很长时间(对我来说大约需要 2 分钟),具体取决于您拥有的 PPA 数量和连接速度。
Ped*_*ram 64
当您没有合适的存储库公钥时,就会发生这种情况。
要解决此问题,请使用以下命令:
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21
Run Code Online (Sandbox Code Playgroud)
它从 ubuntu 密钥服务器检索密钥。然后这个:
gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)
它将密钥添加到 apt 可信密钥中。
hto*_*que 38
您需要获取并导入密钥。
要从 PPA 获取密钥,请访问 PPA 的 Launchpad 页面。在 Launchpad 的每个 PPA 页面上,单击“有关此 PPA 的技术详细信息”(1) 后,您会找到此链接 (2):
按照它并单击密钥 ID 链接 (3):
保存页面,这是您的密钥文件。
现在是时候导入它了:
Applications > Software Center
,Edit > Software sources...
,Authentication
选项卡并单击Import Key File...
,最后OK
。mch*_*hid 15
apt 只能处理 /etc/apt/trusted.gpg.d 中的 40 个键。41 个密钥,即使您通过所有步骤添加丢失的密钥,您也会收到 GPG 错误“找不到公钥”。
检查此文件中是否有您不再使用的 ppa(s) 中未使用的密钥。如果所有都在使用中,请考虑删除一些 ppa(s) 以及 /etc/apt/trusted.gpg.d 中的相应密钥文件
此外,使用
sudo apt-key adv
Run Code Online (Sandbox Code Playgroud)
被认为是一种安全风险,不推荐,因为您“破坏了整个安全概念,因为由于各种原因,这不是接收密钥的安全方式(例如:hkp 是明文协议,可以伪造短甚至长的 keyid,...... ) ”。http://ubuntuforums.org/showthread.php?t=2195579
我相信添加缺失键(例如 1ABC2D34EF56GH78)的正确方法是
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)
Ali*_*rei 11
在 WebUpd8 PPA 中打包了一个小脚本,我将其作为单个 .deb 下载链接,这样您就不必添加整个 PPA - 它会自动导入所有丢失的 GPG 密钥。
下载并安装Launchpad-getkeys(忽略其版本中的 ~ natty,它适用于从 Karmic 到 Oneiric 的所有 Ubuntu 版本)。安装后,打开终端并输入:
sudo launchpad-getkeys
Run Code Online (Sandbox Code Playgroud)
如果您在代理后面,事情会稍微复杂一些,因此请参阅此了解更多信息
当 PPA 的 apt 列表文件指向本地密钥环时,也会发生此错误,例如
deb [signed-by=/usr/share/keyrings/SOMETHING.gpg] https://download.something.org/something something/
Run Code Online (Sandbox Code Playgroud)
虽然该文件可能存在于您的系统上(可能是使用先前的命令下载的),但由于缺少权限,它可能无法读取。我刚刚通过运行修复了这种错误
chmod 644 /usr/share/keyrings/*
Run Code Online (Sandbox Code Playgroud)
获取密钥环文件后。根本问题是sudo
当我已经是root 用户时的使用情况。真的很奇怪,因为无论如何所有这些都是 root 并且在任何地方都没有访问权限失败消息......但这解决了它
小智 6
我在安装 Heroku 时遇到了同样的问题。下面的链接解决了我的问题-
http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html
解决NO_PUBKEY
问题后,以下问题仍然存在
W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>
Run Code Online (Sandbox Code Playgroud)
为了修复它,我在终端中执行了以下命令:
sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update
Run Code Online (Sandbox Code Playgroud)
来源 -解决问题的链接
更一般地说,以下方法应该适用于每个存储库。首先,最终在搜索引擎的帮助下,在程序提供商的网站上搜索如下所示的文本:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----
Run Code Online (Sandbox Code Playgroud)
例如,这样的文本显示在http://deb.opera.com上。复制该段落,将其粘贴到您在桌面上创建的空文件中。这会产生密钥文件。
然后继续输入密钥:
您现在可以删除之前创建的密钥文件。
确保您已apt-transport-https
安装:
dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update;
sudo apt-get install apt-transport-https -y"
Run Code Online (Sandbox Code Playgroud)
添加存储库:
curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list
Run Code Online (Sandbox Code Playgroud)
安装 Skype for Linux:
sudo apt-get update
sudo apt-get install skypeforlinux -y
Run Code Online (Sandbox Code Playgroud)
来源:https : //community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-verified-because-the/td-p/4645756
归档时间: |
|
查看次数: |
787754 次 |
最近记录: |