我最近单独询问了询问 Ubuntu问题正文如下:
W: An error occurred during the signature verification.
The repository is not updated and the previous index files will be used.
GPG error: https://dl.winehq.org/wine-builds/ubuntu bionic InRelease:
The following signatures couldn't be verified
because the public key is not available: NO_PUBKEY 76F1A20FF987672F
如您所见,我的错误消息的一部分显示PUBKEY 76F1A20FF987672F
。这是 WINE 的公钥吗?这是我自己的公钥吗?
最重要的是,PUBKEY 76F1A20FF987672F
我是否不应该在公共论坛(这个)上发布这些信息?
我认为私钥是我唯一不想泄露的东西。我正在阅读维基百科的公钥加密页面,但是有点让人不知所措。
答案1
76F1A20FF987672F
不!这是 Winehq.org 密钥对的 keyID!!
这不是您的公钥(或私钥)。您可能还没有。如果您需要私钥-公钥对,则必须创建它们。
keyID 就像是物理钥匙上的数字。钥匙所属的锁上也有相同的数字。将此信息发布在公共论坛上没有任何坏处。winehq 的私钥安全地保存在...(猜猜是谁?)
葡萄酒总部
WineHQ 更改了他们的私钥-公钥组合。为什么?和人们换锁的原因一样。实体钥匙(和数字钥匙)会丢失(或被删除)或被盗。
看Wine 签名验证错误 - 索引文件下载失败 - 更换镜像无济于事有关如何从 WineHQ 下载新公钥的信息。一旦您拥有新公钥,更新就会通过。新公钥将验证 Wine 更新是否来自 WineHQ,而不是其他任何人。这是因为只有 WineHQ 拥有匹配的私钥。
希望这可以帮助
答案2
76F1A20FF987672F
是与存储在此 APT 存储库中的版本相关联的公钥和私钥的识别码。它不是完整的密钥 - 既不是公钥也不是私钥 - 并且它本身毫无用处。
处理这些代码号的正常方法是将其输入gpg --recv-keys
到本地密钥环中,以加载完整的公钥,但这个特定的公钥不在通常的“密钥服务器”上。https://wiki.winehq.org/Ubuntu获取方法:
wget -nc https://dl.winehq.org/wine-builds/winehq.key sudo apt-key add winehq.key
运行这两个命令应该讓apt-get update
我們再一次快樂。
仅运行第一个命令就会生成一个文件,其中包含与识别码号对应的完整公钥。您可以使用以下命令了解其内容:
$ gpg --list-packets < winehq.key | less
输出中最有趣的部分就在开头:
# off=0 ctb=99 tag=6 hlen=3 plen=397
:public key packet:
version 4, algo 1, created 1544460984, expires 0
pkey[0]: [3072 bits]
pkey[1]: [17 bits]
keyid: 76F1A20FF987672F
# off=400 ctb=b4 tag=13 hlen=2 plen=39
:user ID packet: "WineHQ packages <[email protected]>"
“keyid” 是相同的识别码,而“用户 ID”是与 WineHQ 关联的电子邮件地址。但是,不要想当然——生成此密钥的人可以将“用户 ID”设置为任何内容。确定 PGP 密钥是否属于您认为的个人或组织的正常方法是使用“信任网”,但此密钥根本不在信任网中,因此我们不得不依赖于从属于 Wine 项目的 HTTPS 网站获取它的事实。这可能已经足够好了。
“created 1544460984” 会告诉您密钥的创建时间,但没有什么帮助:该数字是自 Unix 纪元以来的秒数。您可以使用以下命令将其转换为人类可读的内容date
:
$ date --date='@1544460984'
Mon Dec 10 11:56:24 EST 2018
它是在十天前创建的(截至我写这篇文章时)。这可能是您收到 APT 错误的原因——他们最近才更改了密钥。发生这种情况很可疑,但有一条注释https://wiki.winehq.org/Ubuntu说他们确实改变了密钥,所以大概合法,除非整个winehq.org
网站已被攻破。
原始内容winehq.key
如下:
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBFwOmrgBDAC9FZW3dFpew1hwDaqRfdQQ1ABcmOYu1NKZHwYjd+bGvcR2LRGe
R5dfRqG1Uc/5r6CPCMvnWxFprymkqKEADn8eFn+aCnPx03HrhA+lNEbciPfTHylt
[48 more lines of base64]
-----END PGP PUBLIC KEY BLOCK-----
你可以看到这是更大比代码号。为了进行比较,PGP秘密钥匙看起来就像这样。它甚至更大。
-----BEGIN PGP PRIVATE KEY BLOCK-----
lQVYBFwb3HkBDACz89KGuIp/A7whjsCVH8qZM/HL5iTesD/4pncO770Z7y15sIJx
gN+JU/SShGUPPF5oWJqJyYIINkrlgBNYtYg1tfGN0hjE+IVefrrOgYGCdyiEJEKc
[76 more lines of base64]
-----END PGP PRIVATE KEY BLOCK-----
(这是我为了写这个答案而创建的密钥,从未用于签名或加密任何东西,并且立即销毁,即使如果您只有 PGP 密钥的前 96 位,您可能也做不了任何有趣的事情。)