“文档” 菜单
文档首页
/
MongoDB Manual
/

验证 MongoDB 包的完整性

在此页面上

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

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

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

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

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

1

根据您所使用的环境,从 MongoDB 下载中心下载二进制文件。您可以在此页面选择不同的平台和版本。单击 Copy link,并使用以下说明中的 URL。

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

curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.12.tgz

要通过 Shell 下载适用于 Linux 的 7.0.12 版本,请运行以下命令:

curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.12.tgz
2

对于 MacOS,运行以下命令:

curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.12.tgz.sig

对于 Linux,运行以下命令:

curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.12.tgz.sig
3

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

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

PGP 应返回以下响应:

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

对于 MacOS,运行以下命令:

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

对于 Linux,请使用适用于平台的正确文件名,运行以下命令:

gpg --verify mongodb-linux-x86_64-ubuntu2204-7.0.12.tgz.sig mongodb-linux-x86_64-ubuntu2204-7.0.12.tgz

GPG 应返回以下响应:

gpg: Signature made Wed Jun 5 03:17:20 2019 EDT
gpg: using RSA key 160D26BB1785BA38
gpg: Good signature from "MongoDB 7.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 下载中心下载二进制文件。您可以在此页面选择不同的平台和版本。Click Copy 链接,并使用以下说明中的 URL。

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

curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.12.tgz

要通过 Shell 下载适用于 Linux 的 7.0.12 版本,请运行以下命令:

curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-6.0.8.tgz
2

要通过 shell 下载适用于 MacOS 的 SHA256 文件,请使用所需的 URL 和 .sha256 运行以下命令:

curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.12.tgz.sha256

要通过 shell 下载适用于 Linux 的 SHA256 文件,请使用所需的 URL 和 .sha256 运行以下命令:

curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-6.0.8.tgz.sha256
3

计算下载的包文件的校验和:

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

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

mongodb-macos-x86_64-7.0.12.tgz: OK

以下程序将根据 MongoDB 的 SHA256 密钥验证 MongoDB 二进制文件。

1

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

MongoDB Community 下载中心

  1. Version 下拉菜单中,选择 7.0.12 (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-7.0.12-signed.msi.sha256 中,复制内容。

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

3

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

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

该命令输出以下三行:

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

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

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

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

后退

分片集群

来年

增删改查操作