跳到正文
未明观测
返回

PGP 签名验证教程

编辑此页

下载软件安装包时,很多人只看哈希值,或者干脆什么都不看。更稳妥的做法,是同时验证发布者的 PGP 签名。

PGP 验签主要解决两件事:

它不能直接证明“这个软件一定安全”,但至少能证明你拿到的文件和发布者签出的版本一致。

你需要准备什么

开始之前,先确认你手里有下面几样东西:

如果本机还没有 gpg

# macOS
brew install gnupg

# Debian / Ubuntu
sudo apt update
sudo apt install -y gnupg

通用验签流程

1. 获取发布者公钥

优先从以下来源拿公钥:

不要只看短 Key ID。真正该核对的是完整指纹(fingerprint)。

2. 导入公钥

gpg --import public-key.asc

3. 核对指纹

gpg --fingerprint

这一步一定要和官网公布的指纹逐字符比对。只要指纹对不上,后面的 Good signature 都没有意义。

4. 验证签名

gpg --verify file.asc file

对于 detached signature,通常就是这种写法。

5. 读取结果

常见结果可以这样理解:

一个 qBittorrent 示例

假设你要验证 qBittorrent 5.2.0 的 macOS 安装包:

curl -L https://github.com/qbittorrent/qBittorrent/raw/master/5B7CC9A2.asc -o /tmp/qbittorrent-5B7CC9A2.asc
gpg --import /tmp/qbittorrent-5B7CC9A2.asc
gpg --fingerprint 5B7CC9A2
gpg --verify ~/Downloads/qbittorrent-5.2.0.dmg.asc ~/Downloads/qbittorrent-5.2.0.dmg

关键不是把命令背下来,而是理解顺序:

  1. 先拿公钥
  2. 核对指纹
  3. 再验证签名

如果顺序反了,验签就会流于形式。

常见误区

只验证 SHA-256,不验证签名

哈希值当然有用,但它只能证明“你下载的文件和你看到的哈希一致”。如果哈希本身来自不可信来源,这一步并不够。

只看短 Key ID

短 ID 存在碰撞风险。至少核对完整指纹。

看到 Good signature 就完全放心

还不够。你仍然需要确认这个公钥确实属于目标项目,而不是来自第三方镜像站或随手转存的页面。

一句话总结

PGP 验签不是“安全感装饰品”,它是下载链路里最基本的一道验证。只要一个项目提供了签名和公钥,就值得花几十秒把这件事做完整。


编辑此页
Share this post on:

Previous Post
图片压缩与 AVIF 转换
Next Post
Git Fork + Rebase 操作流程