验证gpg 命令验证文件的有效性

 使用OpenGPG验证签名

一、以libuv项目为例验证签名

下载文件:https://dist.libuv.org/dist/v1.49.2/

打开项目的最新发行版:找到最新的发布版文件

下载

wget https://dist.libuv.org/dist/v1.49.2/libuv-v1.49.2.tar.gz.sign
wget https://dist.libuv.org/dist/v1.49.2/libuv-v1.49.2.tar.gz

二、从服务器获取公钥

根据秘钥指纹,从公钥服务器获取公钥。pool.sks-keyservers.net已经不在进行服务了,我们更换公钥服务器。keyserver.ubuntu.com

gpg --keyserver pool.sks-keyservers.net --recv-keys 46AB89B9
gpg: requesting key 46AB89B9 from hkp server pool.sks-keyservers.net
?: pool.sks-keyservers.net: Host not found
gpgkeys: HTTP fetch error 7: couldn't connect: Success
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
gpg: keyserver communications error: keyserver unreachable
gpg: keyserver communications error: public key not found
gpg: keyserver receive failed: public key not found
root@ubuntu:/home/ubuntu# gpg --keyserver keyserver.ubuntu.com --recv-keys 46AB89B9
gpg: requesting key 46AB89B9 from hkp server keyserver.ubuntu.com
gpg: key 46AB89B9: public key "Ben Noordhuis <info@bnoordhuis.nl>" imported
gpg: Total number processed: 1
gpg:               imported: 1 (RSA: 1)

密钥指纹 密钥指纹是一个用于唯一标识公钥的字符串。它通常是通过对公钥进行哈希运算生成的。密钥指纹在公钥加密系统中非常重要,因为它可以帮助用户验证公钥的真实性和完整性。

AE9BC059 来自公钥指纹的后面八位数字

GPG key: FDF5 1936 4458 319F A823 3DC9 410E 5553 AE9B C059 (pubkey-saghul)

验证

gpg --verify libuv-v1.49.2.tar.gz.sign

问题

gpg: WARNING: This key is not certified with a trusted signature!
gpg:         There is no indication that the signature belongs to the owner.

该警告表明GPG 默认不信任该密钥,因为它尚未经过受信任来源的认证(即,该密钥尚未由受信任的密钥签名)。信任有效性是分开的:签名仍然有效,但 GPG 无法确认密钥是否确实属于其声称的人(无需进一步验证或信任)。

信任密钥:如果您信任该密钥并且希望在将来避免出现此警告,则可以通过运行以下命令手动对该密钥进行签名或将其标记为受信任:

gpg --edit-key A33C03BE

然后输入trust

并选择适当的信任级别(通常5是完全信任的级别)。

此后,您可以输入 来退出quit

验证密钥的所有者

您可以通过检查官方密钥服务器或项目网站来验证密钥的指纹,以确保它属于正确的人。

发表评论

0 评论