Cosign签署ECR镜像报错:基于GitHub仓库证书的无密钥签名问题
Cosign无密钥签署镜像报错「invalid key」解决方法
问题现象
此前正常使用Cosign无密钥模式签署镜像,现在出现如下错误:
getting signer: getting key from Fulcio: getting CTFE public keys: updating local metadata and targets: error updating to TUF remote mirror: invalid key remote status:{ "mirror": "https://sigstore-tuf-root.storage.googleapis.com", "metadata": { "root.json": { "version": 9, "len": 6766, "expiration": "12 Sep 24 06:53 UTC", "error": "" }, "snapshot.json": { "version": 132, "len": 2302, "expiration": "09 Apr 24 16:16 UTC", "error": "" }, "targets.json": { "version": 9, "len": 5478, "expiration": "12 Sep 24 06:13 UTC", "error": "" }, "timestamp.json": { "version": 169, "len": 723, "expiration": "26 Mar 24 16:16 UTC", "error": "" } } }
解决步骤
清理本地TUF缓存:Cosign缓存的TUF元数据可能损坏或过期,执行命令:
cosign clean或者手动删除缓存目录:
- Linux/macOS:
rm -rf ~/.sigstore/ - Windows:删除
%USERPROFILE%\.sigstore\目录
- Linux/macOS:
强制刷新TUF元数据:指定官方TUF根地址重新拉取最新元数据,执行签署命令时添加环境变量:
COSIGN_TUF_ROOT=https://sigstore-tuf-root.storage.googleapis.com cosign sign --keyless <你的镜像地址>升级Cosign版本:旧版本可能不兼容最新的TUF根密钥,升级到最新稳定版:
- macOS(Homebrew):
brew upgrade cosign - 其他系统:下载对应平台的最新二进制文件
- macOS(Homebrew):
检查系统时间:本地时间与UTC偏差过大可能导致元数据过期判断错误,确保系统开启时间自动同步服务
内容的提问来源于stack exchange,提问作者unbox-us
相关产品推荐
相关产品推荐

