本指南介绍如何在从互联网下载 WP-CLI 发行文件之后、将其安装到系统之前,使用密码学方法验证文件的来源与完整性。
为什么要验证下载文件?
验证下载文件的目的有两项:
- 来源真实性:确认文件由 WP-CLI 维护者创建并签名。
- 完整性:确认文件在下载过程中没有损坏或被篡改。
快速验证指南
下载 wp-cli.phar 后,可以使用 GPG 签名或校验和进行验证。
方法一:使用 GPG 签名验证(推荐)
GPG 签名能够验证文件完整性;在核对签名密钥身份之后,还能验证文件来源。因此,它比仅比较校验和提供更充分的验证。
第一步:下载签名文件
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc
要下载特定版本,应从 GitHub Releases 获取发行文件与对应签名,将 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
第二步:导入 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 之前的发行版本使用另一把密钥,其指纹为 3B91 91CD 3CF1 B5C5 10EE FAF6 AFAA E4A2 85E0 40A8。验证旧版本时,应查阅 builds 仓库 README 并导入对应密钥。原指南在这里写作“v1.5.1(2016 年 7 月)”;这一日期有误,官方 v1.5.1 发布公告日期为 2018 年 4 月 21 日。密钥是否适用于某个具体发行文件,应以该文件的实际签名及官方密钥资料为准。
第三步:验证签名
验证最新稳定版:
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 表示文件的签名与这把公钥匹配,签名所覆盖的内容没有被修改;它本身并不证明公钥持有者的身份。应同时核对上面的官方指纹,不能仅凭“签名有效”就跳过密钥身份核验。
方法二:使用校验和验证
无法使用 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 签名,并核对签名密钥身份。
到哪里寻找验证文件?
最新稳定版与每夜构建
最新稳定版和每夜构建的验证文件位于 builds 仓库的 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 Releases 页面查找。原指南列举以下发行附件:
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 校验和,同样不适合安全验证。
各版本实际提供的附件可能不同,应先查看目标版本的附件清单,再下载对应文件;不要假定所有历史版本都具备上述全部文件。
包含验证步骤的完整安装示例
下面保留原指南下载、验证与安装 WP-CLI 的完整示例。这是类 Unix shell 的命令示例,需要 PHP、GPG 和相应系统权限。代码中的“验证成功后”是一条注释,脚本没有自动中止失败后的后续步骤;应分步执行,只有签名验证成功且密钥指纹相符时,才继续测试与安装。
# Download WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# Download signature
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc
# Import signing key (first time only)
curl -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/wp-cli.pgp | gpg --import
# Verify signature
gpg --verify wp-cli.phar.asc wp-cli.phar
# If verification succeeds, test it works
php wp-cli.phar --info
# Make executable and move to PATH
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
# Verify installation
wp --info
补充资源
- WP-CLI Builds 仓库:签名密钥与最新构建。
- GitHub Releases:各版本发行及其验证附件。
- GNU Privacy Guard:GPG 的更多资料。











暂无评论内容