Debian Stretch 上的 apt-key 添加:未找到有效的 OpenPGP 数据

Debian Stretch 上的 apt-key 添加:未找到有效的 OpenPGP 数据

我正在尝试遵循Debian 安装说明Docker 网站上提供了。不幸的是,添加 GPG 密钥对我来说失败了:

$ curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

我尝试从本地文件系统下载密钥并添加它,但效果是一样的:

$ apt-key add docker.gpg 
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

对于其他密钥也会发生同样的情况,例如 VirtualBox:

$ apt-key add oracle_vbox_2016.asc 
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

按键看上去不错:

$ cat docker.gpg 

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBFit2ioBEADhWpZ8/wvZ6hUTiXOwQHXMAlaFHcPH9hAtr4F1y2+OYdbtMuth
lqqwp028AqyY+PRfVMtSYMbjuQuu5byyKR01BbqYhuS3jtqQmljZ/bJvXqnmiVXh
[...]
jCxcpDzNmXpWQHEtHU7649OXHP7UeNST1mCUCH5qdank0V1iejF6/CfTFU4MfcrG
YT90qFF93M3v01BbxP+EIY2/9tiIPbrd
=0YYhg
-----END PGP PUBLIC KEY BLOCK-----

$ shasum docker.gpg 
f5b5bd1487cefc0c53c947e11ca202e86b33dbad  docker.gpg

$ gpg --list-packets docker.gpg 
# off=0 ctb=99 tag=6 hlen=3 plen=525
:public key packet:
    version 4, algo 1, created 1487788586, expires 0
    pkey[0]: [4096 bits]
    pkey[1]: [17 bits]
    keyid: 8D81803C0EBFCD88
# off=528 ctb=b4 tag=13 hlen=2 plen=43
:user ID packet: "Docker Release (CE deb) <[email protected]>"
# off=573 ctb=89 tag=2 hlen=3 plen=567
:signature packet: algo 1, keyid 8D81803C0EBFCD88
    version 4, created 1487792064, md5len 0, sigclass 0x13
    digest algo 10, begin of digest b2 c9
    hashed subpkt 2 len 4 (sig created 2017-02-22)
    hashed subpkt 27 len 1 (key flags: 2F)
    hashed subpkt 11 len 4 (pref-sym-algos: 9 8 7 3)
    hashed subpkt 21 len 4 (pref-hash-algos: 10 9 8 11)
    hashed subpkt 22 len 4 (pref-zip-algos: 2 3 1 0)
    hashed subpkt 30 len 1 (features: 01)
    hashed subpkt 23 len 1 (keyserver preferences: 80)
    subpkt 16 len 8 (issuer key ID 8D81803C0EBFCD88)
    data: [4094 bits]
# off=1143 ctb=b9 tag=14 hlen=3 plen=525
:public sub key packet:
    version 4, algo 1, created 1487788586, expires 0
    pkey[0]: [4096 bits]
    pkey[1]: [17 bits]
    keyid: 7EA0A9C3F273FCD8
# off=1671 ctb=89 tag=2 hlen=3 plen=1086
:signature packet: algo 1, keyid 8D81803C0EBFCD88
    version 4, created 1487788586, md5len 0, sigclass 0x18
    digest algo 8, begin of digest f2 b8
    hashed subpkt 2 len 4 (sig created 2017-02-22)
    hashed subpkt 27 len 1 (key flags: 02)
    subpkt 16 len 8 (issuer key ID 8D81803C0EBFCD88)
    subpkt 32 len 540 (signature: v4, class 0x19, algo 1, digest algo 8)
    data: [4095 bits]

我做错了什么吗?我应该采取什么步骤来进一步解决问题?

我使用的是 Debian Stretch。我没有任何防火墙。我在多个网络上尝试过它。

答案1

只需移除/etc/apt/trusted.gpg解决了问题。这没有害处。所有 Debian 密钥都存储在/etc/apt/trusted.gpg.d

受信任的gpg文件创建者软件属性-gtk(我猜是用来存储其他 repo 密钥的)而且它不适合易于在 Debian Stretch 上。

参考:https://readlist.com/lists/lists.debian.org/debian-user/77/388463.html

答案2

我的回答太晚了,但由于我遇到了同样的问题并且最终设法解决了它,所以这里是解决方案。

症状:我的 apt-get 总是拒绝更新,因为无法检查密钥。Apt-key 总是拒绝添加新密钥(从 gpg 读取密钥时说没有密钥可添加),所以我陷入了困境。

事实上,文件 /etc/apt/trusted.gpg 已损坏。备份此文件后,我将 debian 签名密钥重新导入 gpg:8B48AD6246925553 等(请参阅https://ftp-master.debian.org/keys.html): gpg --keyserver keyring.debian.org --recv-keys 8B48AD6246925553

然后删除文件“trusted.gpg”,我使用 gpg 将密钥导出到 /etc/apt/trusted.gpg:gpg --export 8B48AD646925553 >> trusted.gpg

对每个键都执行此操作,然后 apt-get 即可再次工作!!

马蒂亚斯

答案3

我使用了 peacerebels 的想法(上文)

然后(为了重新开始并备份原件 - 以防万一)我将所有内容移动到/etc/apt/trusted.gpg.d我称为“已禁用”的文件夹中,如下所示:

root@****:/etc/apt/trusted.gpg.d mkdir disabled
root@****:/etc/apt/trusted.gpg.d mv debian-archive* disabled

然后把所有命令放在一行中。看来 OpenPGP 错误和处理总数 = 0 和 gpg WARNING: nothing exported->> 在这种情况下没有任何意义

root@****:/etc/apt# gpg --keyserver keyring.debian.org --recv-keys EF0F382A1A7B6500 | gpg --export EF0F382A1A7B6500  >> trusted.gpg
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

root@****:/etc/apt# gpg --keyserver keyring.debian.org --recv-keys 7638D0442B90D010 | gpg --export 7638D0442B90D010 >> trusted.gpg
gpg: WARNING: nothing exported

gpg: no valid OpenPGP data found.

gpg: 处理总数:0

root@****:/etc/apt# gpg --keyserver keyring.debian.org --recv-keys 8B48AD6246925553 | gpg --export 8B48AD6246925553 >> trusted.gpg
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

root@****:/etc/apt# gpg --update-trustdb
gpg: no ultimately trusted keys found

(我不知道是否需要 gpg --update-trustdb,但我就是这么做的。结果可能会有所不同)

root@****:/etc/apt# apt-get update
Ign:1 https://mirror.****.****.***/debian stretch InRelease
Hit:2 https://mirror.****.****.***/debian stretch Release

我希望这对某些人有帮助。经过 2 个晚上的 2 次安装后,似乎如果在安装阶段选择不使用在线存储库/更新机制,就会出现密钥问题。

相关内容