验证 MongoDB 软件包的完整性
MongoDB 发布团队对所有软件包进行数字签名,以确保特定 MongoDB 软件包是有效的、未被篡改的 MongoDB 发布版本。在安装 MongoDB 之前,您应使用提供的 PGP 签名或 SHA-256 校验和验证软件包。
PGP 签名通过检查文件的完整性和真实性,提供最强有力的保证,以防止篡改。
加密校验和仅验证文件的完整性,以防止网络传输错误。
验证 Linux/macOS 软件包
使用 PGP/GPG
MongoDB 使用不同的 PGP 密钥对每个发布分支进行签名。每个发布分支的公钥文件可以从以下密钥服务器以文本.asc
和二进制 .pub
格式下载。
下载MongoDB安装文件。
根据您的环境从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
验证MongoDB安装文件。
对于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
使用SHA-256
下载MongoDB安装文件。
根据您的环境从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
验证Windows包
以下过程用于验证MongoDB二进制文件与其SHA256密钥。
下载安装程序。
下载MongoDB .msi
安装程序。例如,要下载MongoDB社区版最新版本,请参阅MongoDB社区下载中心。
在版本下拉菜单中,选择
8.0.0 (当前发布)
。在平台下拉菜单中,选择Windows。
在包下拉菜单中,选择msi。
点击下载并将文件保存到您的下载文件夹中。
获取公共签名文件。
获取您的MongoDB版本的公共签名文件。
例如,获取MongoDB社区版最新版本的SHA256签名
从https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-8.0.0-signed.msi.sha256复制内容。
将内容保存到您的下载文件夹中的文件
mongodb-windows-x86_64-8.0.0-signed.msi.sha256
。
将签名文件与MongoDB安装程序的哈希值进行比较。
要比较签名文件与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哈希值。
根据哈希值是否匹配,输出
True
或False
。
如果哈希值匹配,则MongoDB二进制文件已验证。