你下载了 Fedora,并从下载页面获取了 CHECKSUM 文件。现在你想确认这个 ISO 确实是 Fedora 发布的那一个。

这件事分两部分。

首先验证 CHECKSUM 文件上的签名,然后用这个已验证的文件核对 your ISO 的 SHA256 哈希值。

签名校验与校验和比对解决的不是同一个问题。如果你只是把 your ISO 与一个未经验证的文件中的校验和做比较,你无法知道那个校验和是否与 ISO 一起被替换过。

这篇简短的指南介绍如何从命令行验证 Fedora ISO 的校验和与真实性。

你需要准备什么

你需要:

  • 你下载的 Fedora ISO
  • 与之匹配的 CHECKSUM 文件
  • Fedora 的 OpenPGP 证书
  • 一个带有 curl、gpgv 和 sha256sum 的终端

把 ISO 和 CHECKSUM 文件放在同一个目录下。这不是必须的,但能让下面的命令更容易对照。

下面所有命令都以普通用户身份运行,不需要 root 权限。

为了演示,这里使用最新的 Fedora 45 Beta ISO。在 Intel 或 AMD 64 位系统上,Fedora Workstation 45 Beta 当前的文件是:

Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso
Fedora-Workstation-iso-45_Beta-1.3-x86_64-CHECKSUM

Fedora 目前在其 Fedora Workstation 45 Beta 下载页面 上列出了这些文件以及对应的验证命令。

点击那个小对勾按钮。

点击该图标后,你会看到验证 ISO 的说明:

这不只针对 Fedora Beta 镜像;所有 Fedora 发行版都适用。Fedora 镜像的下载按钮旁都会有一个小对勾。

为什么 CHECKSUM 需要签名

SHA256 哈希值只能说明两份数据是否一致,不能说明这个哈希值是谁生成的。

设想有人替换了你的 Fedora ISO,同时提供了一个新的 CHECKSUM 文件,里面是替换后文件的哈希值。简单的哈希比对会通过,因为两个文件彼此一致。

Fedora 解决这个问题的办法,是用 OpenPGP 密钥对 CHECKSUM 文件签名。

因此流程是这样的:

Fedora signing key
↓
signed CHECKSUM file
↓
SHA256 value
↓
your ISO

第一步确认校验和信息来自 Fedora signing key,第二步检查 your ISO 是否与之匹配。

第 1 步:下载 Fedora 的 OpenPGP 证书

在存放 your ISO 和 CHECKSUM 文件的目录中,下载 Fedora 的证书:

curl -O https://fedoraproject.org/fedora.pgp
curl -O https://fedoraproject.org/fedora.gpg

Fedora 在其当前的 Fedora 45 Beta 下载页面上提供了这两个文件。

现在你应该有类似这样的文件:

Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso
Fedora-Workstation-iso-45_Beta-1.3-x86_64-CHECKSUM
fedora.pgp
fedora.gpg

检查密钥环

从互联网下载下来的公钥并不会自动成为受信任的密钥。

Fedora 发布了其 OpenPGP 证书 的信息,包括指纹。在依赖这把密钥进行验证之前,先查看证书信息,并把相关指纹与 Fedora 公开的信息比对。Fedora 在其当前的下载说明中直接链接到该证书信息。

你可以用下面的命令查看密钥环:

gpg --show-keys --with-fingerprint ./fedora.gpg

显示哪些密钥取决于 Fedora 当前包含的证书。撰写本指南时,执行上述命令会给出 Fedora 43、44、45 和 46 的证书信息:

pub   rsa4096 2024-08-10 [SCE]
C6E7 F081 CF80 E131 4667  6E88 829B 6066 3164 5531
uid                      Fedora (43) <[email protected]>
pub   rsa4096 2025-01-14 [SCE]
36F6 12DC F27F 7D1A 48A8  35E4 DBFC F71C 6D9F 90A6
uid                      Fedora (44) <[email protected]>
pub   rsa4096 2025-07-29 [SCE]
4F50 A611 4CD5 C697 6A7F  1179 655A 4B02 F577 861E
uid                      Fedora (45) <[email protected]>
pub   rsa4096 2026-01-30 [SCE]
D924 B10D 3E81 0DAB DD8B  56B5 96E7 E914 9121 1FCE
uid                      Fedora (46) <[email protected]>

重要的是,你信任的指纹要来自 Fedora 公开的信息,而不是只来自下载的文件。

第 2 步:验证 CHECKSUM 文件

现在验证 CHECKSUM 文件的 OpenPGP 签名:

gpgv --keyring ./fedora.gpg \
Fedora-Workstation-iso-45_Beta-1.3-x86_64-CHECKSUM

示例输出:

gpgv: Signature made Friday 11 September 2026 07:13:24 PM IST
gpgv:                using RSA key 4F50A6114CD5C6976A7F1179655A4B02F577861E
gpgv: Good signature from "Fedora (45) <[email protected]>"

不要孤立地解读 Good signature。它的意思是签名对所使用的那把公钥在数学上有效。你还需要确认这把公钥就是你核对过指纹的那把 Fedora 密钥。

这就是指纹核对要放在前面的原因。

如果你得到 BAD signature

就此停下。

不要用那个 CHECKSUM 文件去验证 ISO。检查你是否下载了正确的 CHECKSUM 文件,以及是否在使用 Fedora 当前的证书。必要时从 Fedora 官方下载页面重新下载文件,再重复验证。

签名错误不是可以绕过的问题。

第 3 步:检查 Fedora ISO 的完整性与真实性

CHECKSUM 文件通过验证之后,你就可以用它来检查 your ISO。

对 Workstation 45 Beta x86_64 镜像,使用下面的命令:

gpgv --keyring ./fedora.gpg --output - \
Fedora-Workstation-iso-45_Beta-1.3-x86_64-CHECKSUM \
| sha256sum -c --ignore-missing

Fedora 在记录这个 gpgv 管道的同时,也给出了等效的 sq 命令。

这里有两条命令,用 | 连接。

第一条命令验证 CHECKSUM 文件,并把经过认证的内容送到标准输出。

第二条命令 sha256sum 读取这些校验和,并与你计算机上的文件比对。

对 Fedora 45 Beta ISO,你会看到类似下面的输出:

gpgv: Signature made Friday 11 September 2026 07:13:24 PM IST
gpgv:                using RSA key 4F50A6114CD5C6976A7F1179655A4B02F577861E
gpgv: Good signature from "Fedora (45) <[email protected]>"
Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso: OK

OK 表示 ISO 的 SHA256 哈希值与经过认证的 CHECKSUM 文件中的对应条目一致。

恭喜!你刚刚用受 Fedora 签名保护的校验和信息验证了这个 ISO。

--ignore-missing 是做什么的?

CHECKSUM 文件可能包含多个 Fedora 镜像的条目,而你可能只下载了其中一个。

--ignore-missing 告诉 sha256sum,不要因为你计算机上不存在的其他镜像而报错。

它不会忽略失败的校验和。

例如:

Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso: FAILED

这就是真正的问题,停下来调查它。

那“improperly formatted”警告呢?

你可能会看到类似这样的输出:

Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso: OK
sha256sum: WARNING: ... lines are improperly formatted

出现这种情况,可能是因为 signed CHECKSUM file 中包含 sha256sum 不会当作普通校验和条目来解释的内容。

关键是你实际下载的那个 ISO 的结果。

OK 才是你要的结果。

出现 FAILED、文件缺失错误或其他意外错误,都需要调查。

所以不要一概而论地认为所有警告都可以忽略,要读懂输出。

手动核对哈希值

你可以自己计算 ISO 的 SHA256 哈希值:

sha256sum Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso

对于当前的 Fedora Workstation 45 Beta x86_64 镜像,Fedora 发布了这个 SHA256 value:

71367760b4cfda9cb5a1dbe9875a2c5fd89ef8333e6fac7508c366e650207905

手动比对适合检查 ISO 是否发生了意外损坏。Fedora 自己也指出,当你只需要测试非故意损坏时,可以使用发布的 SHA256 value。

不过就真实性而言,签名 CHECKSUM 的流程是更完整的方法。

关于 Windows 和 macOS

基本思路在其他操作系统上不变。

在 Windows 上,PowerShell 可以用下面的命令计算 SHA256 哈希值:

Get-FileHash "C:\Downloads\Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso" -Algorithm SHA256

然后你可以把结果与已验证的 CHECKSUM 文件中的对应条目比对。要做完整的签名验证,还需要一个 OpenPGP 实现,例如 GnuPG。

在 macOS 上,内置的 shasum 命令可以计算哈希值:

shasum -a 256 Fedora-Workstation-Live-45_Beta-1.3.x86_64.iso

同样,计算哈希值只是验证流程的第二部分。如果你要确认来源真实性,还要验证 CHECKSUM 的签名。

如果你不想使用命令行,Fedora Media Writer 提供了图形化的方式来下载 Fedora 并创建安装介质。Fedora 的下载页面也为希望自行执行加密校验的用户提供了手动验证说明。

常见错误

核对错了校验和

确认校验和属于你下载的那个确切的 ISO。Workstation、Server、KDE、ARM 和 x86_64 镜像的文件和校验和各不相同。

信任未经验证的 CHECKSUM 文件

如果校验和本身来自不受信任的来源,那么 SHA256 value 匹配也不够。

先验证 OpenPGP 签名。

把 Good signature 当作整个流程

签名必须由你打算信任的那把 Fedora 密钥生成。这就是核对密钥指纹很重要的原因。

忽略失败的校验和

如果 your ISO 显示 FAILED,不要安装它,也不要把这个结果解释成无害的警告。重新下载 ISO 并从头检查一遍。

使用通配符却不检查它匹配了什么

你可能会看到这样的命令:

*-CHECKSUM

目录里只有一个 CHECKSUM 文件时,这样很方便。如果你下载了多个 Fedora 镜像,请改用确切的文件名,避免产生歧义。

Fedora 45 Beta 是预发布软件。校验和验证成功只说明 your ISO 与 Fedora 发布的镜像一致,并不说明这个 beta 没有 bug,或者可以用于生产环境。