验证 MongoDB CLI 包的完整性
MongoDB CLI 发布团队对所有软件包和容器镜像进行数字签名,以证明特定包有效且未被篡改。在安装 Linux 或 Windows 的 MongoDB CLI 包之前,您应使用提供的 PGP 签名或 SHA-256 校验和信息验证包。
验证 Linux 包
MongoDB 使用不同的 PGP 密钥为每个发布分支签名。最新的 MongoDB CLI 发布的公钥文件可以从密钥服务器.
以下过程用于验证 MongoDB CLI 包与其 PGP 密钥的一致性。
下载MongoDB CLI安装文件。
根据您的Linux环境,从MongoDB下载中心下载MongoDB CLI二进制文件。点击复制链接并使用以下说明中的URL。
例如,要通过shell下载Linux的2.0.1
版本,运行以下命令
curl -LO https://fastdl.mongodb.org/mongocli/mongocli_2.0.1_linux_x86_64.tar.gz
验证MongoDB CLI安装文件。
运行以下命令以验证安装文件
gpg --verify mongocli_2.0.1_linux_x86_64.tar.gz.sig mongocli_2.0.1_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.1,下载2.0.1的checksums.txt文件。打开
checksums.txt
文件,并复制你下载的包左侧的文本。例如,如果你下载了mongocli_2.0.1_windows_x86_64.zip
,复制mongocli_2.0.1_windows_x86_64.zip
左侧的文本。这个值是SHA-256密钥值。将SHA-256密钥值保存到你的下载文件夹中名为
mongocli-key
的.txt
文件中。
将签名文件与MongoDB CLI安装程序哈希值进行比较。
运行Powershell命令来根据你下载的文件验证包。
如果你下载了mongocli_2.0.1_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.1_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.1_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.1_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二进制文件。