文档菜单
文档首页
/
MongoDB 手册
/ /

验证 MongoDB 软件包的完整性

本页面内容

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

MongoDB 发布团队对所有软件包进行数字签名,以确保特定 MongoDB 软件包是有效的、未被篡改的 MongoDB 发布版本。在安装 MongoDB 之前,您应使用提供的 PGP 签名或 SHA-256 校验和验证软件包。

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

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

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

1

根据您的环境从MongoDB下载中心下载二进制文件。您可以在该页面上选择不同的平台和版本。点击复制链接并在以下说明中使用该URL。

例如,要通过shell下载macOS的8.0.0版本,请运行此命令

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

要通过shell下载Linux的8.0.0版本,请运行此命令

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

对于macOS,运行此命令

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

对于Linux,运行此命令

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

如果您尚未下载并导入MongoDB 8.0的公钥,请运行以下命令

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

PGP应该返回此响应

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

对于macOS,运行此命令

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

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

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

GPG应该返回以下响应

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

例如,要通过shell下载macOS上的8.0.0版本,请输入以下命令

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

要通过shell下载Linux的8.0.0版本,请运行此命令

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-8.0.0.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-8.0.0.tgz.sha256

如果校验和匹配下载的包,将返回以下内容

mongodb-macos-x86_64-8.0.0.tgz: OK

以下过程用于验证MongoDB二进制文件与其SHA256密钥。

1

下载MongoDB .msi安装程序。例如,要下载MongoDB社区版最新版本,请参阅MongoDB社区下载中心。

  1. 版本下拉菜单中,选择8.0.0 (当前发布)

  2. 平台下拉菜单中,选择Windows

  3. 下拉菜单中,选择msi

  4. 点击下载并将文件保存到您的下载文件夹中。

2

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

例如,获取MongoDB社区版最新版本的SHA256签名

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

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

3

要比较签名文件与MongoDB二进制文件的哈希值,请调用以下Powershell脚本

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

命令输出三行

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

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

  • 根据哈希值是否匹配,输出TrueFalse

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

返回

分片集群