Atlas CLI发布团队对所有软件包和容器映像进行数字签名,以证明特定包有效且未被更改。在安装适用于Linux、 Windows或Docker的Atlas CLI软件包之前,应使用提供的 PGP 签名、SHA-256校验和或Cosign信息来验证包。
验证 Linux 包
MongoDB 使用不同的 PGP 密钥对每个发布分支进行签名。 最新 Atlas CLI 版本的公钥文件可从密钥服务器下载。
以下过程根据 Atlas CLI 包的 PGP 密钥验证 Atlas CLI 包。
下载 Atlas CLI 安装文件。
根据您的Linux环境,从MongoDB下载中心下载Atlas CLI二进制文件。 单击Copy link并使用以下说明中的URL 。
示例,要通过1.54.0 下载适用于Linux 的shell 发布,请运行以下命令:
curl -LO https://fastdl.mongodb.org/mongocli/mongodb-atlas-cli_1.54.0_linux_x86_64.tar.gz
验证 Atlas CLI 安装文件。
运行以下命令来验证安装文件:
gpg --verify mongodb-atlas-cli_1.54.0_linux_x86_64.tar.gz.sig mongodb-atlas-cli_1.54.0_linux_x86_64.tar.gz
gpg: Signature made Thu Mar 14 08:25:00 2024 EDT gpg: using RSA key <key-value-long> gpg: Good signature from "Atlas CLI Release Signing Key <packaging@mongodb.com>" [unknown]
如果包已正确签名,但目前不信任签名密钥,则 gpg 还将返回以下消息:
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner.
验证 Windows 包
以下过程根据 Atlas CLI 包的 SHA-256 密钥验证 Atlas CLI 包。
下载 Atlas CLI 安装文件。
从MongoDB下载中心或Github下载Atlas CLI .msi 或 .zip文件。
保存公共签名。
从Github下载该发布的
checksums.txt文件,其中包含每个文件的 SHA-256 密钥。示例,对于版本 1.54.0,下载1.54.0 checksums.txt文件。打开
checksums.txt文件并复制下载的包左侧列出的文本。例如,如果您下载了mongodb-atlas-cli_1.54.0_windows_x86_64.zip,请复制mongodb-atlas-cli_1.54.0_windows_x86_64.zip左侧的文本。该值是 SHA-256 密钥值。将 SHA-256 密钥值保存在下载文件夹中名为
atlas-cli-key的.txt文件中。
将签名文件与 Atlas CLI 安装程序的哈希进行比较。
运行 Powershell 命令,根据下载的文件验证包。
如果您下载了 mongodb-atlas-cli_1.54.0_windows_x86_64.zip,请运行以下命令:
$sigHash = (Get-Content $Env:HomePath\Downloads\atlas-cli-key.txt | Out-String).SubString(0,64).ToUpper(); ` $fileHash = (Get-FileHash $Env:HomePath\Downloads\mongodb-atlas-cli_1.54.0_windows_x86_64.zip).Hash.Trim(); ` echo $sigHash; echo $fileHash; ` $sigHash -eq $fileHash
<key-value-from-signature-file> <key-value-from-downloaded-package> True
如果您下载了 mongodb-atlas-cli_1.54.0_windows_x86_64.msi,请运行以下命令:
$sigHash = (Get-Content $Env:HomePath\Downloads\atlas-cli-key.txt | Out-String).SubString(0,64).ToUpper(); ` $fileHash = (Get-FileHash $Env:HomePath\Downloads\mongodb-atlas-cli_1.54.0_windows_x86_64.msi).Hash.Trim(); ` echo $sigHash; echo $fileHash; ` $sigHash -eq $fileHash
<key-value-from-signature-file> <key-value-from-downloaded-package> True
该命令返回签名文件中的键值、下载包中的键值,如果两个值匹配则返回 True 。
如果两个值匹配,则 Atlas CLI 二进制文件通过验证。
验证 Docker 容器镜像
您可以使用Cosign来验证 MongoDB 对Atlas CLI容器映像的签名。
如需验证 MongoDB 的容器签名,请执行以下步骤:
验证签名。
运行以下命令以按标记验证签名:
COSIGN_REPOSITORY=docker.io/mongodb/signatures cosign verify --private-infrastructure --key=./atlas-cli.pem docker.io/mongodb/atlas:latest
Verification for index.docker.io/mongodb/atlas:latest -- The following checks were performed on each of these signatures: - The cosign claims were validated - The signatures were verified against the specified public key [{"critical":{"identity":{"docker-reference":"index.docker.io/mongodb/atlas"},"image":{"docker-manifest-digest":"sha256:<key-value>"},"type":"cosign container image signature"},"optional":null}]