⑴Ubuntu系统中,对于下载的文件最好检测下其完整性(详见如何检测Linux系统已下载文件的完整性,今天小编要给大家介绍的是如何使用SHA检验iso镜像的完整性,一起来了解下吧。
⑵对于 Ubuntu 发行版的情况, Canonical 提供了几个供验证使用的验校文件(如 MDSUM, SHASUMS 和 SHASUMS。在这个例子中我们使用 SHASUMS。
⑶首先,下载下面两个文件。
⑷第一个文件是 ISO 镜像的 SHA 验校文件,而第二个文件(*.gpg是验校文件的签名。第二个文件的目的是验证验校文件本身的有效性。
⑸我们通过运行下面的命令来验证 SHASUMS 文件的有效性。
⑹$ gpg --verify SHASUMS.gpg SHASUMS
⑺gpg:Signature made ThuOct:: AM EDT using DSA key ID FBB
⑻gpg:Can‘t check signature: public key not found
⑼如果你得到上面的错误信息,是因为你还没有导入生成这个签名的公共密钥。因此我们现在导入需要的公共密钥。
⑽这样做之前,你需要知道公共密钥的 “key ID”,而这在上面的 gpg 命令的输出中有显示。在这个例子中,密钥 ID 时 “FBB”。运行下面的命令来从官方 Ubuntu 密钥服务器导入公共密钥。
⑾$ gpg --keyserver --recv-keys FBB
⑿既然公共密钥已经被导入,我们可以继续并重新运行之前的命令来验证签名。
⒀gpg --verify SHASUMS.gpg SHASUMS
⒁这次你没有看到 “public key not found” 的错误信息。如果 SHASUMS 文件时有效的,你会看到 “Good signature from ” 的信息。注意到你还看到一个 “This key is not certified with a trusted signature” 的警告信息。基本上这个警告信息是告诉你对导入的公共密钥没有明确信任。要避免这个警告,你可以选择指定完全信任导入的公共密钥,但你应该只有在通过其他方式审查了这个密钥之后才这样做。否则的话,你可以暂时忽略这个警告。
⒂在验证了 SHASUMS 文件的完整性后,最后一个步骤是比较已下载 ISO 文件的 SHA 验校和和 SHASUMS 文件中对应的验校值。你可以使用 shasum 命令行工具来完成这个步骤。
⒃为方便起见,下面一行命令比较 SHA 验校和并报告结果。
⒄$ shasum -c 《(grep ubuntu-.-desktop-amd.iso SHASUMS
⒅ubuntu-.-desktop-amd.iso: OK
⒆如果你看到了上面的输出信息,这表明两个验校值相匹配。这样已下载 ISO 镜像的完整性就被成功的验证了。
⒇上面就是Ubuntu使用SHA检测iso镜像完整性的方法,如果iso镜像不完整,那么在使用的时候就会造成不必要的麻烦,而iso镜像通常又比较大,检测下会比较好。