我正在试着验证文件
https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86_64-108.4.453.tar.gz
使用此处提供的签名:
https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86_64-108.4.453.tar.gz.asc
我使用以下命令:
gpg --verify dropbox-lnx.x86_64-108.4.453.tar.gz.asc这将产生以下结果:
gpg: assuming signed data in 'dropbox-lnx.x86_64-108.4.453.tar.gz'
gpg: Signature made Tue 20 Oct 2020 10:53:17 PM CEST
gpg: using RSA key FC918B335044912E
gpg: Can't check signature: No public key我在~/.gnupg/gpg.conf中的GPG配置如下所示:
keyserver keyserver.ubuntu.com
auto-key-retrieve重点放在auto-key-retrieve上。这个设置可以工作,就像在:我以前成功地用它验证了文件,即使我没有公钥问题;它是在验证过程中按预期检索的。
gpg --search-keys FC918B335044912E还显示,可以在我使用的密钥服务器上找到密钥。我也可以gpg --recv-keys它,之后验证显然是有效的。
我的问题可能源于对gpg操作的误解:为什么我可以手动获取所讨论的密钥,但不能自动使用auto-key-retrieve,即使我知道它与其他键一起工作?
发布于 2020-10-26 06:47:02
在深入研究这个问题之后,我想我现在至少可以部分地自己回答这个问题。当然,任何补充信息都是欢迎的。:)
原因可能是给定的签名不包含密钥的指纹,而只包含密钥ID。例如,您可以在gpg --list-packets中看到这一点。你得到的签名
:signature packet: algo 1, keyid FC918B335044912E
version 4, created 1603227197, md5len 0, sigclass 0x00
digest algo 8, begin of digest fd b9
hashed subpkt 2 len 4 (sig created 2020-10-20)
subpkt 16 len 8 (issuer key ID FC918B335044912E)
data: [2046 bits]对于auto-key-retrieve工作的另一个签名,它看起来如下所示:
:signature packet: algo 1, keyid BCAA30EA9C0D5763
version 4, created 1543944543, md5len 0, sigclass 0x00
digest algo 10, begin of digest 84 51
hashed subpkt 33 len 21 (issuer fpr v4 1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763)
hashed subpkt 2 len 4 (sig created 2018-12-04)
subpkt 16 len 8 (issuer key ID BCAA30EA9C0D5763)
data: [2046 bits]以线为重点
hashed subpkt 33 len 21 (issuer fpr v4 1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763)man gpg在有关auto-key-retrieve的一节中清楚地指出:
试图查找密钥的方法顺序是:...
(强调我的)
另一方面,--recv-keys也通过键ID查找。
Sidenote:没有指纹的Dropbox键很奇怪。删除密钥ID查找的部分原因是,即使在209-07-05年的此承诺中,指纹也在很长一段时间内默认包含在签名中。Dropbox的签字日期为2020年至10-20年。振作起来,Dropbox!xP
https://unix.stackexchange.com/questions/616160
复制相似问题