在 Linux 中验证 ISO 文件的初学者指南
创始人
2024-03-02 15:15:11
0

这篇简单指南演示了在 Ubuntu 和其他 Linux 发行版中验证 ISO 文件过程。

从互联网下载操作系统镜像文件或软件有时会带来安全风险,因为恶意行为者可能会损坏或修改文件。为保证下载文件的真实性和完整性,需要对其进行校验。在本初学者指南中,我们将引导你在 Linux 中验证 ISO 文件。

什么是 ISO 文件?

ISO 文件通常用于创建可启动媒体、安装软件和创建备份。ISO 文件包含压缩格式的所有原始应用/光盘数据,可以轻松下载并通过互联网共享。

例如,如果你下载 Ubuntu 桌面、服务器或任何其他 Linux 操作系统,你一定遇到过扩展名为 .iso 的文件。它还用于应用或其他操作系统,例如 Windows。

为什么要验证 ISO 文件?

验证 ISO 文件对于确保下载的文件真实且未被修改至关重要。修改后的 ISO 文件可能包含可能损害你系统的恶意软件或病毒。验证 ISO 文件可确保下载的文件与开发人员创建的文件相同且未被篡改。

例如,几年前 Linux Mint 服务器被黑 并且官方 ISO 文件被修改。由于你是从官方网站下载的,你可能会认为这些文件是真实的,但它们不一定是。

因此,在使用 ISO 文件安装到你的笔记本电脑/台式机之前,始终验证 ISO 文件非常重要。

在 Linux 中验证 ISO 文件的方法

Linux 中校验 ISO 文件的常用方法有两种:

  • 使用 SHA-256 校验和
  • 使用 GPG 签名

使用 SHA-256 校验和

SHA-256 是一种加密哈希函数,可为文件生成唯一的哈希值。校验和是将 SHA-256 算法应用于文件的结果。校验和是一个唯一的字符串,可用于验证文件的完整性。

要使用 SHA-256 校验和验证 ISO 文件,请从开发者网站下载 SHA-256 校验和。SHA-256 校验和文件将包含 ISO 文件的校验和值。你需要生成下载的 ISO 文件的校验和值,并将其与 SHA-256 校验和文件中的校验和值进行比较。如果两个值匹配,则下载的 ISO 文件是真实的且未被修改。

使用 GPG 签名

GPG(GNU Privacy Guard)是一种加密软件,可用于对文件进行签名和验证。GPG 签名是一种数字签名,可确保文件的真实性和完整性。开发者使用他们的私钥签署 ISO 文件,用户使用开发者的公钥验证签名。

要使用 GPG 签名验证 ISO 文件,你需要从开发者网站下载 GPG 签名文件。GPG 签名文件将包含开发者的公钥和 ISO 文件的签名。你需要导入开发者公钥,下载 ISO 文件和 GPG 签名文件,并使用开发者公钥对 ISO 文件进行签名验证。如果签名有效,则 ISO 文件是真实的并且未被修改。

如何在 Linux 中验证 ISO 文件:示例

让我们看一下上述在 Linux 中使用 SHA-256 校验和及 GPG 签名验证 ISO 文件的方法的一些示例。

使用 SHA-256 校验和验证 ISO 文件

  • 我已经从 官方网站 下载了 Linux Mint 21.1 ISO 文件。
  • 此外,我还下载了包含 ISO 文件校验和的 SHA-256 文本文件(见上图)。
  • 现在,打开终端并转到 ISO 和 SHA-256 校验和文件所在的目录。
  • 在终端中使用 sha256sum 命令生成 ISO 文件的 SHA-256 校验和值。例如,要生成上述名为 linuxmint-21.1-cinnamon-64bit.iso 的 ISO 文件的校验和值,请运行以下命令:
sha256sum linuxmint-21.1-cinnamon-64bit.iso
  • 将生成的校验和值与 SHA-256 校验和文件中的校验和值进行比较。如果两个值匹配,则 ISO 文件是真实的并且未被修改。
  • 这是上述 ISO 文件的并排比较。

使用 sha256sum 命令验证 ISO 文件

如果校验和匹配,你可以确信该文件是真实的并且没有被篡改。你可以对任何其他 ISO 文件和校验和使用相同的命令进行验证。

现在,让我们看看如何使用 GPG 密钥进行验证。

使用 GPG 签名验证 ISO 文件

对于上面的示例,我已经从官方网站下载了 .gpg 文件和 ISO 文件。

下一步是下载并导入开发者的公钥。你可以从开发者的网站或密钥服务器下载公钥。

我使用下面的命令为这个例子下载了 Linux Mint 的公钥。因此,对于相应 Linux 发行版文件的 ISO 文件,请查看下载页面以找出公钥。

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-key "27DE B156 44C6 B3CF 3BD7 D291 300F 846B A25B AE09"

注意:你还可以下载公钥 .asc 文件(如果有),然后使用命令 gpg --import developer_key_file.asc 将其导入你的系统。

完成后,运行下面的 gpg 命令来验证文件。

gpg --verify sha256sum.txt.gpg sha256sum.txt

使用 gpg 密钥验证 ISO 文件

如果文件是真实的,你应该会在上述命令的输出中看到 “Good signature” 消息。此外,你可以匹配公钥的最后 8 个字节。“Warning” 是一条通用消息,你可以忽略它。

总结

验证 ISO 文件是确保下载文件的真实性和完整性的重要步骤。在本初学者指南中,我介绍了在 Linux 中使用 SHA-256 校验和和 GPG 签名验证 ISO 文件的方法和步骤。通过执行这些步骤,你可以自信地下载和使用 ISO 文件,知道它们没有被修改并且可以安全使用。

请记住,即使你是从官方网站下载的,在你验证之前你永远不会知道 ISO 文件是否真实。因此,请将此作为最佳实践。

参考信息

(题图:MJ/iso cd image illustration in high resolution, very detailed, 8k)


via: https://www.debugpoint.com/verify-iso-files-linux/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

ISO

相关内容

不使用pymongo创建I...
要创建一个ISODate对象,您可以使用datetime模块来生成...
2024-12-29 06:00:51
不使用IsolationA...
在Android中,可以使用JUnit框架来运行基准测试。以下是一...
2024-12-28 21:01:20
不能在创建Luxon Da...
Luxon 是一个用于处理日期和时间的 JavaScript 库。...
2024-12-27 09:01:18
Bundle.GetPar...
使用Bundle.GetParcelable(string?)代替...
2024-12-27 00:01:35
Bundle.GetPar...
使用Bundle.GetParcelable(string?)来代...
2024-12-27 00:00:51
不建议使用"#u...
根据MISRA 2012规则20.5,不建议使用#undef来取消...
2024-12-25 20:01:48

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...