验证MongoDB软件包的完整性
在本页面
MongoDB版本团队对所有软件包进行数字签名,以证明特定的MongoDB软件包是有效且未更改的MongoDB版本。在安装MongoDB之前,您应该使用提供的PGP签名或SHA-256校验和来验证软件包。
通过检查文件的真实性和完整性以防止篡改,PGP签名提供了最有力的保证。
加密校验和仅验证文件完整性以防止网络传输错误。
例如,要通过shell下载macOS
4.2.8
发行版,请运行以下命令:复制
curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.2.8.tgz
复制
curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.2.8.tgz.sig
如果尚未下载并导入MongoDB 4.2公钥,请运行以下命令:
复制
curl -LO https://www.mongodb.org/static/pgp/server-4.2.asc
gpg --import server-4.2.asc
PGP应该返回以下响应:
复制
gpg: key 4B7C549A058F8B6B: "MongoDB 4.2 Release Signing Key <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
运行以下命令:
复制
gpg --verify mongodb-macos-x86_64-4.2.8.tgz.sig mongodb-macos-x86_64-4.2.8.tgz
GPG应该返回以下响应:
复制
gpg: Signature made Wed Jun 5 03:17:20 2019 EDT
gpg: using RSA key 4B7C549A058F8B6B
gpg: Good signature from "MongoDB 4.2 Release Signing Key <[email protected]>" [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
例如,要通过shell下载macOS
4.2.8
发行版,请输入以下命令:复制
curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.2.8.tgz
复制
curl -LO https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.2.8.tgz.sha256
计算软件包文件的校验和:
复制
shasum -c mongodb-macos-x86_64-4.2.8.tgz.sha256
如果校验和与下载的软件包匹配,它将返回以下内容:
复制
mongodb-macos-x86_64-4.2.8.tgz: OK
这将根据其SHA256密钥验证MongoDB二进制文件。
下载MongoDB
.msi
安装程序。例如,要下载最新版本的社区版MongoDB:- 1.在版本下拉列表中,选择
4.2.8 (current release)
。 - 2.在平台下拉菜单中,选择Windows。
- 3.在Package下拉列表中,选择msi。
- 4.单击**下载,**然后将文件保存到下载文件夹中。
获取您的MongoDB版本的公共签名文件。
例如,对于最新版本社区版MongoDB的SHA256签名:
- 2.将内容保存到“
mongodb-win32-x86_64-2012plus-4.2.8-signed.msi.sha256
”下载文件中的文件夹中。
要将签名文件与MongoDB二进制文件的哈希值进行比较,请调用以下Powershell脚本:
复制
$sigHash = (Get-Content $Env:HomePath\Downloads\mongodb-win32-x86_64-2012plus-4.2.8-signed.msi.sha256 | Out-String).SubString(0,64).ToUpper(); `
$fileHash = (Get-FileHash $Env:HomePath\Downloads\mongodb-win32-x86_64-2012plus-4.2.8-signed.msi).Hash.Trim(); `
echo $sigHash; echo $fileHash; `
$sigHash -eq $fileHash
复制
AF5AF79EFE540DCDDC2825A396C71FCFC4FEB463BC9CADDCCDE20AD126321CCC
AF5AF79EFE540DCDDC2825A396C71FCFC4FEB463BC9CADDCCDE20AD126321CCC
True
该命令输出三行:
- 您直接从MongoDB下载的
SHA256
哈希。 - 一个你从MongoDB下载的MongoDB二进制计算
SHA256
哈希值。 - 一个取决于哈希匹配的
True
或者False
结果。
如果哈希匹配,则将验证MongoDB二进制文件。
译者:小芒果
最近更新 1yr ago