11.4. 安装和使用 Cosign
使用以下步骤直接安装 Cosign。
先决条件
- 已安装 Go 版本 1.16 或更高版本。
-
您已在
config.yaml
文件中将FEATURE_GENERAL_OCI_SUPPORT
设置为true
。
流程
输入以下命令
直接安装
Cosign :$ go install github.com/sigstore/cosign/cmd/cosign@v1.0.0
输出示例
go: downloading github.com/sigstore/cosign v1.0.0 go: downloading github.com/peterbourgon/ff/v3 v3.1.0
输入以下命令为 Cosign 生成键值对:
$ cosign generate-key-pair
输出示例
Enter password for private key: Enter again: Private key written to cosign.key Public key written to cosign.pub
输入以下命令为键值对签名:
$ cosign sign -key cosign.key quay.io/user1/busybox:test
输出示例
Enter password for private key: Pushing signature to: quay-server.example.com/user1/busybox:sha256-ff13b8f6f289b92ec2913fa57c5dd0a874c3a7f8f149aabee50e3d01546473e3.sig
如果您遇到
error: signing quay-server.example.com/user1/busybox:test: get remote image: GET https://quay-server.example.com/v2/user1/busybox/manifests/test: UNAUTHORIZED: 访问所请求的资源没有授权;映射[]
错误,因为 Cosign 依赖于~./docker/config.json
进行授权,您可能需要执行以下命令:$ podman login --authfile ~/.docker/config.json quay.io
输出示例
Username: Password: Login Succeeded!
输入以下命令查看更新的授权配置:
$ cat ~/.docker/config.json { "auths": { "quay-server.example.com": { "auth": "cXVheWFkbWluOnBhc3N3b3Jk" } }