首页 / 资讯中心 / 文章详情

Ekko Agent 中 1Password CLI 的安全 `op` 使用模式:secret reference、`op run`、`op inject` 与 `op read` 实战指南

Ekko Agent 中 1Password CLI 的安全 `op` 使用模式:secret reference、`op run`、`op inject` 与 `op read` 实战指南 ★ FEATURED ARTICLE
AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载导读本文以 Ekko Agent 内置1passwordSkill 的 cli-examples.md 为核心系统讲解 1Password CLIop在 AI Agent 环境中的安全调用模式如何用 secret reference 代替明文密钥、如何用op run与op inject让密钥流过而不落地、以及何时才允许使用op read。读完本文你将掌握一套既可用于手工终端、也可嵌入 Agent 工具链的密钥安全规范理解为什么打印密钥验证访问是错误的示范以及如何在不把密钥写入模型上下文、终端日志、聊天记录或版本库的前提下完成认证、取值与注入。背景这份文档在 Ekko Agent 中的位置在 Ekko Agent 运行时中1password是包自带的 Skill位于 packages/ekko-agent/skills/1password/由三部分构成SKILL.mdSkill 的入口与工作流定义认证模式识别顺序、操作偏好与护栏Guardrailsreferences/get-started.md前置条件、认证方式与平台差异说明references/cli-examples.md本文核心收录可直接复制的安全命令模式。从 ekko-agent README 可见1password与tmux、weather、github等一并作为包级内置 Skill在启动时自动安装到每个 Profile用户编辑过的同名 Skill 不会被覆盖。这意味着一套安全、可复用的op调用模式会随 Agent 环境直接分发给每个 Profile因此文档中的每一条命令都承担着防止密钥进入模型上下文、终端输出、日志、聊天记录或已提交文件的职责——这正是整个 Skill 的设计底线见 SKILL.md。认证与账户动手取密钥前的第一道关卡opCLI 的每一次密钥访问都建立在认证之上。cli-examples.md 给出了三个最基本的认证与账户探查命令op whoami op account list op signin --account shorthand-or-signin-addressop whoami确认当前身份与认证状态。SKILL.md 的工作流明确要求在任何读取密钥的操作之前先执行它见 SKILL.md这是用元数据验证访问而非打印密钥验证访问的关键区别op account list列出已配置的账户用于判断是否存在多账户环境op signin --account shorthand-or-signin-address执行交互式登录--account支持账户简称shorthand或登录地址sign-in address。Ekko Agent 在调用op之前会先做三步侦察见 SKILL.md检查操作系统与 shell运行op --version验证 CLI 已安装——但不擅自安装任何软件识别认证模式存在OP_SERVICE_ACCOUNT_TOKEN则为 service account通常用于 CI 或无头环境桌面集成已启用则复用已解锁的桌面 App两者皆无时才走独立交互式登录。若存在多个账户使用--account或已配置的OP_ACCOUNT环境变量指定目标账户见 get-started.md。三种认证模式的取舍get-started.md 与 SKILL.md 共同定义了三种互斥的认证路径它们决定了op命令可以安全运行在什么环境里Service account服务账户通过OP_SERVICE_ACCOUNT_TOKEN认证不依赖桌面 App 的 IPC 通道访问范围被限制在授权给该账户的 Vault 内op whoami op vault list关键纪律OP_SERVICE_ACCOUNT_TOKEN必须由用户在对话与 Agent 命令历史之外配置Agent 不得打印或检查其值见 SKILL.md。桌面 App 集成Desktop app integration直接运行op使其能触达每个用户专属的桌面集成通道op vault list op whoami首次调用可能触发 Touch ID、Windows Hello 或系统级认证。若 CLI 无法连接应请用户打开并解锁 1Password、确认 CLI 集成已开启而不是把该模式搬进 tmux 作为变通方案见 SKILL.md。原因在于连接机制桌面集成走的是每用户 IPC 通道——macOS 上是 XPCLinux 上是 Unix domain socketWindows 上是 named pipetmux 子 shell 未必继承该通道见 get-started.md。独立交互式登录Standalone interactive sign-in当桌面集成与 service account 都不可用时macOS/Linux 下才允许使用私有 tmux 会话且必须事先阅读同仓的tmuxSkill见 SKILL.md。交互式登录会产生一个 session 环境变量它只在该 shell 内有效因此要用持久会话保住它SOCKET_DIR${EKKO_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/ekko-tmux-sockets} mkdir -p $SOCKET_DIR chmod 700 $SOCKET_DIR SOCKET$SOCKET_DIR/ekko-op.sock SESSIONop-auth-$(date %Y%m%d-%H%M%S) tmux -S $SOCKET new -d -s $SESSION -n shell /bin/sh tmux -S $SOCKET send-keys -t $SESSION:0.0 -- eval $(op signin --account my.1password.com) Enter tmux -S $SOCKET capture-pane -t $SESSION:0.0 -p -S - | tail -40要点在 sign-in 正在提示时不得排队后续命令若需要密码、MFA 挑战或账户选择暂停并请用户在本地 attach 到该 socket 与会话完成操作绝不在聊天中索要密码或一次性验证码提示返回后把op whoami发进同一 pane并复用相同的SOCKET与SESSION执行后续命令见 SKILL.md。Windows 上优先使用桌面集成或 service account不应把 POSIX tmux 流程机械翻译成 PowerShell见 SKILL.md。用op run运行带 secret reference 的命令cli-examples.md 的核心原则是在环境文件或环境变量中存放 secret reference而不是解析后的密钥值。export DB_PASSWORDop://app-prod/db/password op run -- printenv SAFE_NON_SECRET_VALUE op run --env-file./.env -- your-commandop://app-prod/db/password是 secret reference 的标准 URI 语法指向 vaultapp-prod中的db条目下的password字段。环境变量里保存的是这个引用字符串即使环境文件泄露攻击者得到的也只是一个取数地址而非密钥本身op run -- your-command会在启动子进程时解析引用把真实密钥注入子进程环境命令结束后密钥随之消失op run --env-file./.env -- your-command则从指定 env 文件读取引用并批量解析适合把整组密钥以引用形式管理在项目外的.env中。两条铁律见 cli-examples.md不要通过打印携带密钥的环境变量来演示成功——例如op run -- printenv DB_PASSWORD这类命令会直接把密钥写进输出除非用户明确需要且输出目标安全否则避免--no-masking。op run默认会遮蔽输出中的密钥--no-masking会关闭这一保护扩大泄露面。用op inject注入模板文件当需要把密钥写入配置文件而非进程环境时使用模板注入op inject -i config.yml.tpl -o config.ymlop inject读取模板文件config.yml.tpl将其中形如op://...的引用替换为解析值输出到config.yml见 cli-examples.md。由于生成的文件包含解析后的密钥SKILL.md 与 cli-examples.md 共同规定了一套持久化密钥文件的处置流程仅在用户明确要求落盘时才创建收紧文件权限例如chmod 600加入版本控制忽略列表.gitignore防止密钥进入已提交文件用完后尽可能清理。用op read读取单个字段op read用于读取 Vault 条目中的具体字段op read op://app-prod/db/one-time password?attributeotp op read --out-file ./key.pem op://app-prod/server/ssh/key.pem第一个命令通过?attributeotp精确读取one-time password条目的otp字段第二个命令用--out-file把密钥直接写入文件而不是 stdout见 cli-examples.md。使用纪律见 cli-examples.md 与 SKILL.mdop read默认把密钥写到 stdout因此仅当有可信的本地消费方确实需要该值时才使用且必须抑制捕获输出绝不允许把值包含在 Agent 的响应里--out-file生成的输出文件与注入文件享有同样的持久化密钥安全措施权限、排除版本控制、清理整体偏好顺序是能走环境变量就op run能走模板就op inject只有输出可被安全消费时才退而求其次用op read见 SKILL.md。落地到 Agent 环境的完整安全护栏把 cli-examples.md 与 SKILL.md 的 Guardrails 合并可以得到一份可直接套用的 Agent 密钥操作清单场景正确做法禁止做法验证访问op whoami、op vault list等元数据命令打印密钥或运行以打印密钥证明访问为目的的命令传递密钥给命令op run -- your-commandenv 中只放op://引用把解析值硬编码进命令或工具参数生成配置文件op inject -i x.tpl -o x随后收紧权限、忽略版本控制、用后清理在聊天/摘要里回显生成文件中的密钥读取单个字段op read 安全消费方 抑制输出在模型响应或总结中中继密钥值输出遮蔽保留op run默认遮蔽除非用户明确要求且输出目标安全否则加--no-masking认证失效修复当前认证模式未经用户知情擅自切换认证模式同时遵守 get-started.md 的平台前提macOS 需在Settings Developer开启 CLI 集成Touch ID 可选Windows 需先启用 Windows Hello 再开启集成Linux 需 PolKit 与认证代理并在Settings Security开启系统认证后于Settings Developer开启 CLI 集成。独立认证首次使用可能还需op account add。若op缺失或认证未配置应向用户说明精确的前置条件并指向官方 1Password CLI 文档而不是静默安装 CLI、让用户在聊天里粘贴密码或令牌、凭空捏造凭据、或把密钥放进工具参数见 SKILL.md。小结cli-examples.md 给出的四组模式——认证探查、op run环境注入、op inject模板注入、op read字段读取——共同构成了 Ekko Agent 消费 1Password 密钥时的完整安全基线。其核心思想可以浓缩为一句话让密钥以op://引用的形式存在由op在最短的生命周期内完成解析与注入并让任何解析后的值都远离模型上下文、终端输出、日志、聊天记录与版本库。配合 SKILL.md 的工作流、get-started.md 的平台前提以及 Guardrails 清单这套模式既适合在 Ekko Agent 的多 Profile 环境中自动执行也完全适用于手工终端与 CI 场景。赞分享AI 应用人工智能AI Agent本地部署前端后端工作流自动化【免费下载链接】ekko-studioEkko Studio is a local-first AI workspace for multi-agent chat, coding, and visual workflows, available on desktop and the web.项目地址https://gitcode.com/gh_mirrors/he/ekko-studio点击查看免费下载相关推荐OpenClaw 1Password 技能实战op CLI 的 sign-in、read、run 与 inject 命令详解OpenClaw 1Password 技能实战op CLI 的 sign in、read、run 与 inject 命令详解 OpenClaw 仓库内置的 1AI 应用AI Agent交互助手后端即时通讯网关op-name harness run — session session-idop name harness run — session session id Shape: 1 orchestrator N subagents人工智能大模型算子库模型优化AI 技能CANNAscendop-alloy 使用指南用 Rust 将应用接入 OP Stack 的 Alloy 生态组件op alloy 使用指南用 Rust 将应用接入 OP Stack 的 Alloy 生态组件 导读 op alloy 是 OP Stack 官方仓库 opt区块链Web3后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站