可以在没有互联网连接的情况下验证工件证明。
先决条件
开始前,应已经为构建生成工件证明。具体见原文链接的“使用工件证明确立构建来源”。
步骤1:下载证明捆绑包
首先在在线计算机从证明 API 获取捆绑包:
gh attestation download PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME
原文输出示例:
Wrote attestations to file sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl.
Any previous content has been overwritten
The trusted metadata is now available at sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl
步骤2:下载受信任的根材料
工件证明在公共仓库使用 Sigstore 公益实例,在私有仓库使用 GitHub 的 Sigstore 实例。一个命令可以获取两者的受信任根材料:
gh attestation trusted-root > trusted_root.jsonl
更新离线环境中的受信任根信息
最佳实践是:每次将新签名内容导入离线环境,都重新生成 trusted_root.jsonl。
文件中的密钥材料没有内置到期日,因此生成根文件之前签名的内容仍会成功验证。生成后签名的内容,也会继续验证,直到 Sigstore 实例轮换密钥材料;这种轮换通常一年发生多次。你无法仅凭旧文件知道其生成之后密钥是否已撤销。
步骤3:离线验证
将以下内容导入离线环境:
- GitHub CLI。
- 待验证工件。
- 证明捆绑包。
- 受信任根文件。
执行:
gh attestation verify PATH/TO/YOUR/BUILD/ARTIFACT-BINARY -R ORGANIZATION_NAME/REPOSITORY_NAME --bundle sha256:ae57936def59bc4c75edd3a837d89bcefc6d3a5e31d55a6fa7a71624f92c3c3b.jsonl --custom-trusted-root trusted_root.jsonl
来源:离线验证证明,GitHub Docs 官方中文页面。本文整理官方中文表述,保留全部实质内容及命令;示例摘要是原文占位示例,未在本次环境执行验证。© GitHub Inc.;文档许可待核验,转载依据用户明确授权。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END











暂无评论内容