gpg:找不到有效的OpenPGP数据


Answers:


79

如果您落后于公司代理并且公司使用其自己的证书,则可能会出现此问题。只需在命令中添加“ --no-check-certificate”。例如 wget --no-check-certificate -qO - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

有用。如果要查看发生了什么,可以在添加“ --no-check-certificate”选项之前使用详细命令而不是安静命令。例如: wget -vO - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - 如果您落后于代理,这将告诉您使用“ --no-check-certificate”。


1
我不知道这是怎么做的,但对于我来说,它已经解决了另一个将Microsoft密钥下载到GPG中的问题
Piotr Kula

1
这应该是答案。这对我来说适用于AWS EC2
Sankofa,

6
我做了curl -fsSL --no-check-certificate https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -,但它给了我command not foundgpg: no valid OpenPGP data found.错误。
灿金

3
@Chan Kim:--no-check-certificate是的命令行选项wget,不是curl
斯纳克

44

设法解决它。将命令分成两个命令,并直接使用下载示例的文件名-

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key    add -

可以分为

  1. wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key
  2. sudo apt-key add jenkins-ci.org.key

1
这对我有用,在第一个命令的-O之后添加了“ jenkins-ci.org.key”。
亚诺(Arno)'18

37

我在Ubuntu Docker容器中收到此错误。我相信原因是该容器缺少CA证书。要修复它,我必须运行:

apt-get update
apt-get install ca-certificates

不知道为什么这被否决了,但这是我的问题,谢谢!
Tobias J

谢谢,它解决了我在ubuntu 16.04 LTS
docker

我在Raspbian上使用systemd-nspawn。机器是Debian。这个解决方案对我来说也非常有用。
塞拉山脉

18

当我在代理后面执行此操作时,我也遇到相同的错误。但是,当我从终端导出以下内容并重新尝试了相同的命令后,问题得以解决:

export http_proxy="http://username:password@proxy_ip_addr:port/"
export https_proxy="https://username:password@proxy_ip_addr:port/"

如何获得proxy_ip_addr和端口?用户名和密码是否也表示我的机器用户名和密码?
Shubho Shaha

14

gpg:找不到有效的OpenPGP数据。

在这种情况下,该消息是一种告诉您下载失败的神秘方式。将这两个步骤一起使用可以很好地解决问题,但是这会破坏错误报告-尤其是在您使用wget -q(或curl -s)时,因为它们会抑制下载步骤中的错误消息。

下载失败可能有多种原因。我的案例(到目前为止尚未确切列出)是,当我使用调用封闭脚本时,代理设置丢失了sudo


在我的案例(https://dl.winehq.org/wine-builds/winehq.key)中,是因为证书不正确。奇怪的是,chrome接受了https连接,但是wget(在Ubuntu 18.04上)抱怨。我假设Chrome和Linux使用的证书链不同。理解该问题的关键是按照您的建议删除该-q标志wget,问题变得清晰明了。我不得不添加--no-check-certificatewget工作。
blueFast

curl还具有--show-error>当与-s和--silent一起使用时,如果curl失败,它将使curl显示一条错误消息。
布伦特·布拉德本


2

我有一个类似的问题。

我使用的命令如下:

wget -qO https://download.jitsi.org/jitsi-key.gpg.key |  apt-key add -

我忘记了标志和URL之间的连字符,这就是wget抛出错误的原因。

这是最终对我有用的命令:

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key |  apt-key add -

1

在我的情况下,问题出在密钥文件位于301移动永久重定向后面,而curl命令未能遵循该重定向。我通过改来解决它wget

wget URL
sudo apt-key add FILENAME

...其中FILENAME是wget下载文件后输出的文件名。

更新:或者,您可以curl -L用来使curl跟随重定向。


我遇到了卷曲的类似问题,根据您的更新,我添加了-L,对我来说就像一个魅力。非常感谢
Naga Venkatesh Gavini


0

通过执行以下命令,它将把jenkins-ci.org.key文件保存在当前工作目录中:

curl -O http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key

然后使用以下命令添加密钥文件:

apt-key add jenkins-ci.org.key

如果系统返回确定,则密钥文件已成功添加。



-3

我也有同样的错误。我已经提到了下面提到的链接并运行了该命令

gpg --import失败,找不到有效的OpenPGP数据

gpg --import KEYS
sudo apt-get update

有效。

我正在使用Ubuntu 12.04版


这意味着gpg --import KEYS会绕开(工作方式)apt-key add KEYS吗?
Aquarius Power

不幸的是,我不明白如何应用该解决方案。文本“ gpg --import KEYS”“ sudo apt-get update”与命令“ wget -q -O-pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-密钥添加-”?什么是钥匙?如果您现在不需要使用wget,则如何获取密钥?如果我尝试“#gpg --import KEYS”,我会收到很多错误,包括“ pgp:无法打开KEYS:没有这样的文件或目录”
John Little

也许他的意思是KEYS一词作为您的关键源URL的占位符。
亚历山大·斯托尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.