MongoDB CLI 发布团队对所有软件包和容器映像进行数字签名,以证明特定包有效且未被更改。 在安装适用于 Linux 或 Windows 的 MongoDB CLI 包之前,应使用提供的 PGP 签名或 SHA- 256校验和信息来验证包。
验证 Linux 包
MongoDB使用不同的 PGP 密钥对每个发布分支进行签名。 最新MongoDB CLI发布的公钥文件可以从密钥服务器下载。
以下过程根据其 PGP 密钥验证MongoDB CLI包。
下载 MongoDB CLI 安装文件。
根据您的Linux环境,从MongoDB下载中心下载MongoDB CLI二进制文件。 单击Copy link并使用以下说明中的URL 。
示例,要通过2.0.7 下载适用于Linux 的shell 发布,请运行以下命令:
curl -LO https://fastdl.mongodb.org/mongocli/mongocli_2.0.7_linux_x86_64.tar.gz
验证 MongoDB CLI 安装文件。
运行以下命令来验证安装文件:
gpg --verify mongocli_2.0.7_linux_x86_64.tar.gz.sig mongocli_2.0.7_linux_x86_64.tar.gz
gpg: Signature made Thu Mar 14 08:25:00 2024 EDT gpg: using RSA key <key-value-long> gpg: Good signature from "MongoDB CLI Release Signing Key <packaging@mongodb.com>" [unknown]
如果包已正确签名,但目前不信任签名密钥,则 gpg 还将返回以下消息:
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
验证 Windows 包
以下过程将根据MongoDB CLI包的 SHA- 256密钥验证该包。
下载 MongoDB CLI 安装文件。
从MongoDB下载中心或Github下载MongoDB CLI .msi 或 .zip文件。
保存公共签名。
从Github下载该发布的
checksums.txt文件,其中包含每个文件的 SHA-256 密钥。示例,对于版本 2.0.7,下载2.0.7 checksums.txt文件。打开
checksums.txt文件并复制下载的包左侧列出的文本。例如,如果您下载了mongocli_2.0.7_windows_x86_64.zip,请复制mongocli_2.0.7_windows_x86_64.zip左侧的文本。该值是 SHA-256 密钥值。将 SHA-256 密钥值保存在下载文件夹中名为
mongocli-key的.txt文件中。
将签名文件与 MongoDB CLI 安装程序哈希进行比较。
运行 Powershell 命令,根据下载的文件验证包。
如果您下载了 mongocli_2.0.7_windows_x86_64.zip,请运行以下命令:
$sigHash = (Get-Content $Env:HomePath\Downloads\mongocli-key.txt | Out-String).SubString(0,64).ToUpper(); ` $fileHash = (Get-FileHash $Env:HomePath\Downloads\mongocli_2.0.7_windows_x86_64.zip).Hash.Trim(); ` echo $sigHash; echo $fileHash; ` $sigHash -eq $fileHash
<key-value-from-signature-file> <key-value-from-downloaded-package> True
如果您下载了 mongocli_2.0.7_windows_x86_64.msi,请运行以下命令:
$sigHash = (Get-Content $Env:HomePath\Downloads\mongocli-key.txt | Out-String).SubString(0,64).ToUpper(); ` $fileHash = (Get-FileHash $Env:HomePath\Downloads\mongocli_2.0.7_windows_x86_64.msi).Hash.Trim(); ` echo $sigHash; echo $fileHash; ` $sigHash -eq $fileHash
<key-value-from-signature-file> <key-value-from-downloaded-package> True
该命令返回签名文件中的键值、下载包中的键值,如果两个值匹配则返回 True 。
如果两个值匹配,则 MongoDB CLI 二进制文件已通过验证。