Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

验证 MongoDB 包的完整性

在此页面上

  • 验证 Linux/macOS 包
  • 验证 Windows 包

MongoDB 发布团队对所有软件包进行数字签名,证明特定的 MongoDB 包是有效且未经更改的 MongoDB 版本。在安装 MongoDB 之前,应使用所提供的 PGP 签名或 Sha-256 校验和来验证包。

PGP 签名通过检查文件的真实性和完整性来防止篡改,从而提供最强有力的保证。

加密校验和仅验证文件完整性,以防止网络传输错误。

MongoDB 使用不同的 PGP 密钥对每个发布分支进行签名。每个版本分支的公钥文件均可从 密钥服务器以文本 .asc 和二进制 .pub 格式下载。

1

根据您所使用的环境,从 MongoDB 下载中心下载二进制文件。

例如,要通过 shell 下载 macOS 的 5.0.29 版本,请运行以下命令:

curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-5.0.29.tgz
2
curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-5.0.29.tgz.sig
3

如果尚未下载并导入 MongoDB 5.0 公钥,请运行以下命令:

curl -LO https://pgp.mongodb.com/server-5.0.asc
gpg --import server-5.0.asc

PGP 应返回以下响应:

gpg: key 4B7C549A058F8B6B: "MongoDB 5.0 Release Signing Key <packaging@mongodb.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
4

运行以下命令:

gpg --verify mongodb-macos-x86_64-5.0.29.tgz.sig mongodb-macos-x86_64-5.0.29.tgz

GPG 应返回以下响应:

gpg: Signature made Wed Jun 5 03:17:20 2019 EDT
gpg: using RSA key 4B7C549A058F8B6B
gpg: Good signature from "MongoDB 5.0 Release Signing Key <packaging@mongodb.com>" [unknown]

如果包已正确签名,但目前不信任本地 trustdb 中的签名密钥,则 gpg 还将返回以下消息:

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: E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B

如果收到以下错误消息,请确认已导入正确的公钥:

gpg: Can't check signature: public key not found
1

根据您所使用的环境,从 MongoDB 下载中心下载二进制文件。

例如,要通过 shell 下载 macOS 的 5.0.29 版本,请键入以下命令:

curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-5.0.29.tgz
2
curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-5.0.29.tgz.sha256
3

计算包文件的校验和:

shasum -c mongodb-macos-x86_64-5.0.29.tgz.sha256

如果校验和与下载的软件包相匹配,则应返回以下内容:

mongodb-macos-x86_64-5.0.29.tgz: OK

这将根据 MongoDB 的 SHA256 密钥验证 MongoDB 二进制文件。

1

下载 MongoDB .msi 安装程序。例如,要下载最新版本的 MongoDB Community Edition:

MongoDB Community 下载中心

  1. Version 下拉列表中,选择 5.0.29 (current release)

  2. Platform 下拉菜单中,选择 Windows

  3. Package 下拉菜单中,选择 msi

  4. 单击 Download 并将文件保存到“下载”文件夹。

2

获取 MongoDB 版本的公共签名文件。

例如,对于最新版本的 MongoDB Community Edition 的 SHA256 签名:

  1. https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-5.0.29-signed.msi.sha256 中,复制内容。

  2. 将内容保存到下载文件夹中的文件 mongodb-windows-x86_64-5.0.29-signed.msi.sha256 中。

3

要将签名文件与 MongoDB 二进制文件的哈希进行比较,请调用以下 PowerShell 脚本:

$sigHash = (Get-Content $Env:HomePath\Downloads\mongodb-windows-x86_64-5.0.29-signed.msi.sha256 | Out-String).SubString(0,64).ToUpper(); `
$fileHash = (Get-FileHash $Env:HomePath\Downloads\mongodb-windows-x86_64-5.0.29-signed.msi).Hash.Trim(); `
echo $sigHash; echo $fileHash; `
$sigHash -eq $fileHash
C777DF7816BB8C9A760FDEA782113949408B6F39D72BE29A2551FA51E2FE0473
C777DF7816BB8C9A760FDEA782113949408B6F39D72BE29A2551FA51E2FE0473
True

该命令输出以下三行:

  • 直接从 MongoDB 下载的 SHA256 哈希。

  • 从 MongoDB 下载的 MongoDB 二进制文件计算的 SHA256 哈希。

  • 结果为 TrueFalse,具体取决于哈希是否匹配。

如果哈希值匹配,则 MongoDB 二进制文件通过验证。

后退

分片集群