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

Tad*_*spy 9 debian pgp debian-stretch

我正在尝试按照Docker 网站上提供的 Debian 安装说明进行操作。不幸的是,添加 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
Run Code Online (Sandbox Code Playgroud)

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

$ apt-key add docker.gpg 
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Run Code Online (Sandbox Code Playgroud)

其他键也会发生同样的情况,例如 VirtualBox:

$ apt-key add oracle_vbox_2016.asc 
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Run Code Online (Sandbox Code Playgroud)

钥匙看起来不错:

$ 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) <docker@docker.com>"
# 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]
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我应该采取哪些步骤来进一步排除故障?

我在 Debian Stretch 上。我没有任何防火墙。我已经在几个网络上试过了。

小智 8

只需删除/etc/apt/trusted.gpg 即可解决问题。这没有害处。所有 debian 密钥都存储在/etc/apt/trusted.gpg.d 中

这个trusted.gpg文件是由software-properties-gtk创建的(我猜是为了存储其他repo 密钥),它不适合Debian Stretch上的apt

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

  • `/etc/apt/trusted.gpg: No such file or directory` - [WSL Debian](https://www.microsoft.com/en-ca/p/debian/9msvkqc78pk6) (4认同)

小智 2

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

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

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

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

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

马蒂亚斯