title: "验证 WP-CLI 下载文件" post_status: publish comment_status: open taxonomy: category: - wp-cli-handbook post_tag: - Guides - Repos - Data


验证 WP-CLI 下载文件

为何要验证下载文件?

验证下载文件可确保: - 真实性:文件由 WP-CLI 维护者创建并签名 - 完整性:文件在下载过程中未被损坏或篡改

快速验证指南

下载 wp-cli.phar 后,您可以使用 GPG 签名或校验和进行验证。

方法一:使用 GPG 签名验证(推荐)

此方法提供最强的安全性,因为它同时验证了下载文件的完整性和真实性。

步骤 1:下载签名文件

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc

对于特定版本,请从 GitHub 发布页面下载(将 X.X.X 替换为所需版本):

curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar
curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar.asc

例如,要下载版本 2.12.0:

curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar
curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.asc

步骤 2:导入 WP-CLI 发布签名密钥

WP-CLI 发布版本使用 WP-CLI 发布签名密钥进行签名。导入公钥:

curl -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/wp-cli.pgp | gpg --import

密钥指纹为:

63AF 7AA1 5067 C056 16FD  DD88 A3A2 E8F2 26F0 BC06

导入后,您可以验证密钥指纹:

gpg --list-keys --with-fingerprint releases@wp-cli.org

输出应包含:

pub   rsa2048 2018-05-31 [SC]
      63AF 7AA1 5067 C056 16FD  DD88 A3A2 E8F2 26F0 BC06
uid           [ unknown] WP-CLI Releases <releases@wp-cli.org>
sub   rsa2048 2018-05-31 [E]

注意: v1.5.1(2016年7月)之前的版本使用不同的密钥签名(指纹:3B91 91CD 3CF1 B5C5 10EE FAF6 AFAA E4A2 85E0 40A8)。如果您需要验证旧版本,请从构建仓库的 README 导入该密钥。

步骤 3:验证签名

对于最新的稳定版本:

gpg --verify wp-cli.phar.asc wp-cli.phar

对于特定版本:

gpg --verify wp-cli-2.12.0.phar.asc wp-cli-2.12.0.phar

如果签名有效,您将看到类似以下的输出:

gpg: Signature made {DATE}
gpg:                using RSA key 63AF7AA15067C05616FDDD88A3A2E8F226F0BC06
gpg: Good signature from "WP-CLI Releases <releases@wp-cli.org>" [unknown]

您可能会看到关于密钥不受信任的警告:

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

如果您尚未亲自验证并签署 WP-CLI 密钥,出现此警告是正常的。关键部分是看到 "Good signature",这确认了文件是由此密钥签署且未被修改。

方法 2:使用校验和验证

如果 GPG 不可用,您可以使用 SHA-512 或 SHA-256 校验和来验证完整性(但无法验证真实性)。

使用 SHA-512

下载 SHA-512 校验和文件:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.sha512

或者针对特定版本(将 X.X.X 替换为您的版本号):

curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar.sha512

通过比较输出结果来验证校验和:

sha512sum wp-cli.phar
cat wp-cli.phar.sha512

两个哈希值应完全匹配。

使用 SHA-256 校验

下载 SHA-256 校验和文件:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.sha256

或下载特定版本的校验文件(将 X.X.X 替换为你的版本号):

curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar.sha256

通过比较输出结果来验证校验和:

sha256sum wp-cli.phar
cat wp-cli.phar.sha256

两个哈希值应完全一致。

注意: 校验和验证仅确认文件与发布的校验和匹配,并不能验证文件是否由 WP-CLI 维护者创建。如需完整的安全性保障,请使用 GPG 签名验证。

验证文件存放位置

最新稳定版与每夜构建版

最新稳定版和每夜构建版的验证文件位于: - https://github.com/wp-cli/builds/tree/gh-pages/phar

可用文件: - wp-cli.phar.asc - 最新稳定版的 GPG 签名 - wp-cli.phar.sha512 - 最新稳定版的 SHA-512 校验和 - wp-cli.phar.md5 - MD5 校验和(出于安全考虑不推荐使用;MD5 加密算法已被破解,易受碰撞攻击) - wp-cli-nightly.phar.asc - 每夜构建版的 GPG 签名 - wp-cli-nightly.phar.sha512 - 每夜构建版的 SHA-512 校验和

特定版本发布

对于特定版本,验证文件可在 GitHub 发布页面 获取:

每个发布版本包含: - wp-cli-X.X.X.phar - WP-CLI phar 文件 - wp-cli-X.X.X.phar.asc - 分离式 GPG 签名 - wp-cli-X.X.X.phar.gpg - 内联 GPG 签名 - wp-cli-X.X.X.phar.sha512 - SHA-512 校验和 - wp-cli-X.X.X.phar.sha256 - SHA-256 校验和 - wp-cli-X.X.X.phar.md5 - MD5 校验和(出于安全考虑不推荐使用;MD5 在加密层面已被破解,易受碰撞攻击)

完整的安装与验证示例

以下是下载、验证和安装 WP-CLI 的完整示例:

# 下载 WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

# 下载签名文件
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc

# 导入签名密钥(仅首次需要)
curl -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/wp-cli.pgp | gpg --import

# 验证签名
gpg --verify wp-cli.phar.asc wp-cli.phar

# 如果验证成功,测试是否正常工作
php wp-cli.phar --info

# 设为可执行文件并移动到 PATH 路径
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

# 验证安装
wp --info

Additional resources