如何在Linux中验证ISO镜像
我们刚刚从官方站点或者第三方站点下载了自己喜欢的Linux发行版的ISO镜像,现在该怎么办?
创建可启动媒体并开始安装操作系统?
不,等等
在开始使用它之前,强烈建议我们验证本地系统中下载的ISO是否与下载镜像中存在的ISO完全相同。
因为,Linux Mint的是在几年前被黑客入侵的,黑客制作了带有后门的经过修改的Linux Mint ISO。
因此,检查Linux ISO镜像的真实性和完整性很重要。
在Linux中验证ISO镜像
我们可以使用Checksum值来验证ISO镜像。
校验和是由字母和数字组成的序列,用于检查数据是否有错误并验证下载文件的真实性和完整性。
校验和有不同类型,例如SHA-0,SHA-1,SHA-2(224、256、384、512)和MD5.
MD5总和是最受欢迎的,但如今,SHA-256总和已被现代Linux发行版广泛使用。
我们将使用两个工具“ gpg”和“ sha256”来验证ISO镜像的真实性和完整性。
下载校验和和签名
出于本教程的目的,我将使用Ubuntu 18.04 LTS服务器ISO镜像。
但是,以下给出的步骤也应在其他Linux发行版上起作用。
在Ubuntu下载页面顶部附近,我们将看到一些另外的文件(校验和和签名),如下图所示。
其中SHA256SUMS文件包含所有可用图像的校验和,而SHA256SUMS.gpg文件是该文件的GnuPG签名。
我们在后续步骤中使用此签名文件来验证校验和文件。
下载Ubuntu ISO镜像和这两个文件,并将它们全部放在一个目录中,例如ISO。
$ls ISO/ SHA256SUMS SHA256SUMS.gpg ubuntu-18.04.2-live-server-amd64.iso
如我们在上面的输出中看到的,我已经下载了Ubuntu 18.04.2 LTS服务器镜像以及校验和和签名值。
下载有效的签名密钥
现在,使用以下命令下载正确的签名密钥:
$gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0x46181433FBB75451 0xD94AA3F0EFE21092
输出示例:
gpg: key D94AA3F0EFE21092: 57 signatures not checked due to missing keys gpg: key D94AA3F0EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) <Hyman@theitroad>" imported gpg: key 46181433FBB75451: 105 signatures not checked due to missing keys gpg: key 46181433FBB75451: public key "Ubuntu CD Image Automatic Signing Key <Hyman@theitroad>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 2 gpg: imported: 2
验证SHA-256校验和
接下来,使用带有以下命令的签名来验证校验和文件:
$gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS
输出示例:
gpg: Signature made Friday 15 February 2019 04:23:33 AM IST gpg: using DSA key 46181433FBB75451 gpg: Good signature from "Ubuntu CD Image Automatic Signing Key <Hyman@theitroad>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451 gpg: Signature made Friday 15 February 2019 04:23:33 AM IST gpg: using RSA key D94AA3F0EFE21092 gpg: Good signature from "Ubuntu CD Image Automatic Signing Key (2012) <Hyman@theitroad>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092
如果在输出中看到“良好签名”,则校验和文件由Ubuntu开发人员创建并由密钥文件的所有者签名。
检查下载的ISO文件
接下来,让我们继续检查下载的ISO文件是否与校验和匹配。
为此,只需运行:
$sha256sum -c SHA256SUMS 2>&1 | grep OK ubuntu-18.04.2-live-server-amd64.iso: OK
如果校验和值匹配,我们将看到“确定”消息。
意味着下载的文件是合法的,没有被更改或者篡改。
如果没有任何输出或者与上述输出不同,则说明该ISO文件已被修改或者下载错误。
我们必须再次从一个好的来源重新下载该文件。
一些Linux发行版在下载页面本身中包含了校验和值。
例如,Pop!_os开发人员已在下载页面本身中为所有ISO镜像提供了SHA-256校验和值,因此我们可以快速验证ISO镜像。
下载ISO镜像后,使用以下命令验证它:
$sha256sum Soft_backup/ISOs/pop-os_18.04_amd64_intel_54.iso
输出示例:
680e1aa5a76c86843750e8120e2e50c2787973343430956b5cbe275d3ec228a6 Soft_backup/ISOs/pop-os_18.04_amd64_intel_54.iso
其中以“ 680elaa ...”开头的随机字符串是SHA-256校验和值。
将此值与下载页面上提供的SHA-256总和值进行比较。
如果两个值都相同,那就很好了!已下载的ISO文件是合法的,并且未从其原始状态进行更改或者修改。
这是我们可以在Linux中验证ISO文件的真实性和完整性的方法。
无论我们是从官方还是第三方下载ISO,始终建议我们在使用ISO之前先进行快速验证。