
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/codenotary/cas/actions/workflows/pull.yml/badge.svg](https://github.com/codenotary/cas/actions/workflows/pull.yml) https://goreportcard.com/badge/github.com/codenotary/cas](https://goreportcard.com/report/github.com/codenotary/cas)
为任何数字资产提供有意义、全球唯一、不可变的身份,确保其真实性、可验证性和可追溯性。
在源代码、发布、部署或运行时使用 CodeNotary CAS,可实现持续信任验证,用于检测工作负载中的异常或不需要的活动并采取行动。
借助 CodeNotary 的数字身份基础设施,CAS 允许对所有数字资产进行证明,添加自定义信任级别、属性和有意义的状态,而无需修改或附加任何内容(与数字证书不同)。这使得发布后可以进行变更和撤销,而不会破坏任何客户环境。
一切都以全球化、协作的方式完成,打破常见的孤岛解决方案架构。利用不可变、始终在线的 DLT 平台,可避免复杂的证书颁发机构或数字证书设置(这对于 DevOps 而言也不适用)。
:warning: 从 v0.10 版本开始,重大重构已取代旧的 VCN CLI。虽然旧的 VCN 版本可在发布部分下载,但我们不再提供支持和维护。
创建身份(免费) - 从免费的云 CAS Cloud 获取 API_KEY。
下载 CodeNotary CAS
bashbash <(curl http://getcas.codenotary.io -L)
Windows 用户可从 https://github.com/codenotary/cas/releases/latest 下载二进制文件。
登录
bashexport CAS_API=<你的 API KEY>; cas login
创建软件物料清单(SBOM)
bashcas bom docker://wordpress
证明资产 证明是公证(创建资产的数字证明)和认证(获取资产的真实性)的组合。
公证资产:
bashcas notarize docker://wordpress
认证资产:
bashcas authenticate docker://wordpress
CodeNotary CAS 是由痴迷于 DevOps 的工程师为 DevOps 工程师编写的解决方案,旨在为云原生从源代码到部署的流程带来更好的信任和安全性。
CAS(及其 Docker、Kubernetes、文档或 CI/CD 扩展)可以检测、认证并警报任何涉及使用非真实数字资产的行为。CAS 验证可嵌入任何位置,用于触发警报、更新或工作流。
CAS 用途广泛,可帮助检测或处理以下行为(但不限于):
以及更多:
不仅限于容器,还包括虚拟机 - https://github.com/openfaas-incubator/vcenter-connector
最简单的方法是从 https://github.com/codenotary/cas/releases 下载适用于你平台的最新版本。
下载后,可将二进制文件重命名为 cas,然后从任何位置运行。
Linux 和 macOS 用户需要将文件标记为可执行:
chmod +x cas
如果使用 macOS 并安装了 Homebrew(或 Linux 安装了 Linuxbrew),可通过以下命令安装 cas:
bashbrew tap codenotary/brew brew install cas
安装 golang 1.12 或更高版本后,将此仓库克隆到工作目录。
然后,在工作目录中使用 make cas 构建 cas,之后运行 ./cas。
或者,只需运行 make install 即可在系统中安装 cas,这会将 cas 可执行文件放入 GOBIN,从而可在系统范围内访问。
基本上,cas 可以公证或认证以下类型的资产:
git://)docker:// 或 podman://,后跟本地 docker 或 podman registry 中存在的镜像名称)可使用
--hash标志直接提供哈希值。
有关详细的 命令行用法,请参见 docs/cmd/cas.md 或运行 cas help。
也可使用通配符公证资产。使用 --recursive 标志可遍历内部目录:
bash./cas n "*.md" --recursive
首先在 codenotary.com 注册账户。
然后使用 login 命令开始。首次使用时,cas 将引导你完成登录和导入密钥的过程:
bashcas login
设置密钥后,可按以下示例公证资产:
bashcas notarize <文件> cas notarize docker://<镜像ID> cas notarize podman://<镜像ID> cas notarize git://<git仓库路径> cas notarize --hash <哈希>
默认情况下,所有资产均为私有公证,因此不会披露太多资产信息。如果要公开(从而更可信),请使用 --public 标志:
bashcas notarize --public <资产>
更改资产状态:
bashcas unsupport <资产> cas untrust <资产>
最后,获取所有已公证的资产:
bashcas list
bashcas authenticate <文件> cas authenticate docker://<镜像ID> cas authenticate podman://<镜像ID> cas authenticate git://<git仓库路径> cas authenticate --hash <哈希>
:bulb: 也可在没有 CAS_API_KEY 的情况下进行公开认证 - 更多信息请参见 公开认证
以 json 或 yaml 格式输出结果:
bashcas authenticate --output=json <资产> cas authenticate --output=yaml <资产>
有关更多详细信息,请查看 用户指南。
cas 的 DockerHub 仓库首先,需要拉取镜像:
bashdocker pull hello-world
然后使用以下命令设置自动安全检查,只允许已验证的镜像运行:
bashcas authenticate docker://hello-world && docker run hello-world
如果镜像未通过验证,则不会运行任何内容。
可通过将其他命令的输出通过管道传递给 cas 来认证多个资产:
bashls | xargs cas authenticate
只有当其他命令输出中的所有资产都通过验证时,退出代码才为
0。
添加 --signerID 标志,可认证资产是否由特定 SignerID 签名。
SignerID 是签名者的公钥地址(表示为以
0x为前缀的 40 个十六进制字符长字符串)。
bashcas authenticate --signerID 0x8f2d1422aed72df1dba90cf9a924f2f3eb3ccd87 docker://hello-world
如果需要将资产或组织信任的资产验证为特定签名者列表的先决条件,可使用 cas authenticate 命令和以下语法:
--signerID 标志(例如 --signerID 0x0...1 --signerID 0x0...2)cas_SIGNERID,使用空格分隔每个 SignerID(例如 cas_SIGNERID=0x0...1 0x0...2)注意,使用
--signerID标志将优先于cas_SIGNERID。
只有当资产由至少一个签名者签名时,资产认证才会成功。
如果只想使用资产的哈希进行认证,可使用以下命令:
bashcas authenticate --hash fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
如果要撤销/不支持不再拥有的资产,可使用资产哈希执行以下步骤。
首先,使用 cas list 命令获取资产的哈希。然后在 CLI 中使用:
bashcas untrust --hash <资产哈希> # 或 cas unsupport --hash <资产哈希>
默认情况下,cas 将尝试与 Community Attestation Service 建立安全连接(TLS)。
如果 cas 无法自动下载服务器证书,用户也可提供自定义 TLS 证书:
bashcas login --port 443 --host cas.codenotary.com --cert mycert.pem
出于测试目的或如果客户端应始终信任提供的证书,用户可配置 cas 使用 --skip-tls-verify 选项跳过 TLS 证书验证:
bashcas login --port 443 --host cas.codenotary.com --cert mycert.pem --skip-tls-verify
最后,如果 Community Attestation Service 未通过 TLS 端点公开,用户可使用 --no-tls 选项请求明文连接:
bashcas login --port 80 --host cas.codenotary.com --no-tls
CAS 返回的每条消息都经过加密签名。
要验证服务器身份,可在本地计算指纹并与以下值比较:
SHA256:Re5IAHGkYk32xfnG8txbwJuJPVFe8Mf5AOv3bLg6XsY
使用以下命令生成本地指纹:
bashssh-keygen -i -m PKCS8 -f ~/.cas-trusted-signing-pub-key > mykey.pem.pub ssh-keygen -l -v -f mykey.pem.pub rm mykey.pem.pub
用户可在资产公证时使用 --attr 选项上传自定义元数据,例如:
bashcas n README.md --attr Testme=yes --attr project=5 --attr pipeline=test
此命令将添加自定义资产元数据:Testme: yes、project: 5、pipeline: test。
用户可在资产认证时读取元数据,例如使用 jq 工具:
bashcas a README.md -o json | jq .metadata
检查功能已扩展,添加了新过滤器:--last、--first、--start 和 --end。使用 --last 和 --first 分别返回最后 N 个或第一个 N 个项目。
bashcas inspect document.pdf --last 10
使用 --start 和 --end 可使用时间范围过滤器:
bashcas inspect document.pdf --start 2020/10/28-08:00:00 --end 2020/10/28-17:00:00
如果未提供过滤器,最多返回 10 个项目。
可按签名者标识符过滤结果:
bashcas inspect document.pdf --signerID CygBE_zb8XnprkkO6ncIrbbwYoUq5T1zfyEF6DhqcAI=
认证由拥有 Community Attestation Service 颁发的 CAS_API_KEY 的用户执行。但在某些情况下需要***认证:例如在开源仓库中通过 GitHub Action 执行认证。对于此类场景,可进行公开认证,无需 CAS_API_KEY,但必须定义 SIGNER_ID。示例:
bashcas authenticate --signerID 0xxxxxxxxxxxxxxxxxxxxxxxxxxx docker://hello-world
本软件根据 Apache 2.0 许可发布。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务