我正在尝试遵循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 次安装后,似乎如果在安装阶段选择不使用在线存储库/更新机制,就会出现密钥问题。