实战

OpenClaw 密钥管理完全指南:API Key 安全存储、环境变量与 Vault 集成

OpenClaw 密钥(Secrets)管理完整教程:密钥存储的三种方式对比(配置文件明文/环境变量/外部 Vault)、openclaw secrets set/get/list 命令使用、环境变量在配置中的引用语法(${ENV_VAR})、与系统 Keychain 集成(macOS Keychain/Linux Secret Service)、1Password CLI 和 HashiCorp Vault 接入方案、密钥轮换的操作流程、防止密钥泄露的检查(避免 git commit 含密钥)、以及密钥的最小权限原则(每个渠道用独立的 Token)。

2026/3/254分钟 阅读ClaudeEagle

API Key、Bot Token、数据库密码——这些密钥如果泄露, 可能导致账单暴增或数据泄露。本文讲清楚 OpenClaw 的密钥管理最佳实践。

三种存储方式对比

方式安全性便利性适合场景
配置文件明文❌ 最差✅ 最简单本地测试(不推荐生产)
环境变量⭐⭐⭐⭐⭐⭐服务器部署推荐
Secrets 命令⭐⭐⭐⭐⭐⭐⭐标准生产方案
系统 Keychain⭐⭐⭐⭐⭐⭐⭐本地个人使用
HashiCorp Vault⭐⭐⭐⭐⭐企业级多用户

openclaw secrets 命令

bash
# 存储密钥
openclaw secrets set ANTHROPIC_API_KEY sk-ant-xxxxx
openclaw secrets set TELEGRAM_BOT_TOKEN 1234567890:xxx
openclaw secrets set SLACK_BOT_TOKEN xoxb-xxx

# 查看所有密钥(仅显示名称,不显示值)
openclaw secrets list

# 删除密钥
openclaw secrets delete ANTHROPIC_API_KEY

# 导出密钥(谨慎使用)
openclaw secrets export > secrets-backup.env

密钥存储在加密的本地数据库(~/.openclaw/secrets.db), 与配置文件分离,不会意外 git commit。

在配置文件中引用密钥

json
{
  "providers": {
    "anthropic": {
      "apiKey": "${ANTHROPIC_API_KEY}"
    }
  },
  "channels": {
    "telegram": {
      "botToken": "${TELEGRAM_BOT_TOKEN}"
    },
    "slack": {
      "botToken": "${SLACK_BOT_TOKEN}",
      "signingSecret": "${SLACK_SIGNING_SECRET}"
    }
  }
}

${VAR_NAME} 语法支持:

  • openclaw secrets 存储的密钥
  • 系统环境变量
  • .env 文件中的变量(Gateway 启动时自动加载)

环境变量方式(服务器部署推荐)

bash
# 创建 .env 文件(不要提交到 git!)
cat > ~/.openclaw/.env << 'EOF'
ANTHROPIC_API_KEY=sk-ant-xxxxx
TELEGRAM_BOT_TOKEN=1234567890:xxx
SLACK_BOT_TOKEN=xoxb-xxx
SLACK_SIGNING_SECRET=xxx
GATEWAY_AUTH_TOKEN=your-strong-token
EOF

chmod 600 ~/.openclaw/.env

.gitignore 中排除:

# .gitignore .env *.env ~/.openclaw/.env

macOS Keychain 集成

在 macOS 上,密钥可以存入系统 Keychain(更安全):

bash
# 存入 Keychain
security add-generic-password   -a "openclaw"   -s "ANTHROPIC_API_KEY"   -w "sk-ant-xxxxx"

# 从 Keychain 读取并设置
security find-generic-password -a "openclaw" -s "ANTHROPIC_API_KEY" -w   | openclaw secrets set ANTHROPIC_API_KEY -

1Password CLI 集成

bash
# 安装 1Password CLI
brew install 1password-cli

# 从 1Password 读取并设置到 OpenClaw
op read "op://Private/Anthropic/api-key"   | openclaw secrets set ANTHROPIC_API_KEY -

# 批量导入(启动脚本中)
op run --env-file="op.env" -- openclaw gateway start

op.env 文件:

ANTHROPIC_API_KEY=op://Private/Anthropic/api-key TELEGRAM_BOT_TOKEN=op://Work/Telegram Bot/token

HashiCorp Vault 集成(企业级)

bash
# 从 Vault 读取
export VAULT_ADDR=https://vault.company.com
vault kv get -field=api_key secret/openclaw/anthropic   | openclaw secrets set ANTHROPIC_API_KEY -

# 或在启动时直接从 Vault 注入
vault kv get -format=json secret/openclaw/all   | jq -r '.data.data | to_entries[] | "\(.key)=\(.value)"'   > /tmp/openclaw-secrets.env &&   openclaw gateway start --env-file /tmp/openclaw-secrets.env &&   rm /tmp/openclaw-secrets.env

密钥轮换流程

当 API Key 需要更换时(定期轮换或怀疑泄露): 1. 在服务商生成新 Key Anthropic Console → API Keys → Create new key 2. 更新 OpenClaw 密钥(不停机) openclaw secrets set ANTHROPIC_API_KEY sk-ant-new-key 3. 验证新 Key 生效 openclaw doctor openclaw models test anthropic/claude-haiku-4-5 4. 在服务商吊销旧 Key Anthropic Console → 找到旧 Key → Revoke 整个过程无需重启 Gateway,热更新生效。

防泄露检查

bash
# 检查 git 历史中是否含有密钥
git log --all -p | grep -i "sk-ant\|bot_token\|api_key"

# 使用 git-secrets 工具防止意外提交
brew install git-secrets
git secrets --install
git secrets --register-aws  # 也会匹配 API Key 格式

# 检查配置文件是否有明文密钥
openclaw config show | grep -E "sk-ant|xoxb-|oauth"
# 如果看到明文密钥,立即迁移到 secrets 命令

最小权限原则

每个渠道用独立的 Token,而非共享: ❌ 错误:多个服务共用同一个 Anthropic API Key ✅ 正确:OpenClaw 专用一个 API Key ❌ 错误:Telegram Bot 用 Admin Token(有所有权限) ✅ 正确:创建 Bot 专用账号,只授予消息权限 这样当某个 Token 泄露时: - 只需吊销那一个 Token - 不影响其他服务 - 泄露范围可控

来源:OpenClaw 官方文档 - docs.openclaw.ai/gateway/secrets

相关文章推荐

实战OpenClaw 日志与健康检查完全指南:监控、告警与运维自动化OpenClaw 日志系统(Logging)与健康检查(Health Check)完整教程:日志级别配置(debug/info/warn/error)和日志格式(text/json)、日志文件持久化路径配置、按渠道/Agent/Provider 过滤日志、Health Check HTTP 端点(/health)的使用(状态码/响应格式)、用于容器编排的 liveness/readiness 探针配置、Gateway Doctor 命令的详细输出解读、集成 Prometheus 指标导出(/metrics 端点)、Grafana Dashboard 可视化,以及生产环境的日志轮转和告警配置方案。2026/3/25实战OpenClaw 代理配置完全指南:SOCKS5/HTTP 代理接入 Claude API 解决网络限制OpenClaw 网络代理(Proxy)配置完整教程:为什么需要代理(大陆访问 Anthropic/OpenAI API 被限制)、SOCKS5 代理配置方式(proxy.socks5/proxy.url)、HTTP/HTTPS 代理配置、代理认证(带用户名密码的代理)、按 Provider 单独配置代理(Anthropic 用代理、国内模型不走代理)、Clash/V2Ray/Xray 等代理工具与 OpenClaw 的对接方式、代理连通性测试方法,以及常见代理问题排障(SSL证书错误/超时/认证失败)。2026/3/25实战OpenClaw 渠道排障完全指南:消息收不到、Bot 不回复的系统性诊断方法OpenClaw 渠道故障系统性诊断教程:openclaw doctor 一键诊断命令的输出解读、最常见的 5 类问题(Bot Token 无效/Webhook URL 不可达/DM 配对未完成/网络防火墙拦截/配置格式错误)及对应修复步骤、各主要渠道的专项排障(Telegram 403/WhatsApp QR 失效/Slack 事件订阅未开启/Discord 权限不足/Matrix E2EE 设备未验证)、Gateway 日志的关键字段解读、常见错误码含义(401/403/409/429/503),以及在 Discord 社区获取技术支持的途径。2026/3/25实战OpenClaw 费用控制完全指南:Token 限制、Rate Limit 与 API 成本优化实践OpenClaw API 费用控制完整教程:每请求/每日 Token 上限配置(maxTokensPerRequest/maxTokensPerDay)、Rate Limit 限流防刷设置、每日美元预算告警(budgetAlert)、模型降级策略(高峰期自动切 Haiku 降成本)、Prompt Caching 开启减少重复 Token 消耗、各模型每百万 Token 价格对比表、Ollama 本地模型 0 成本方案,以及监控 Token 用量的 Dashboard 和日志方法。2026/3/25实战OpenClaw 与 Claude Code 协同使用实战:AI 聊天助手 + AI 编程助手的终极组合OpenClaw 与 Claude Code 协同使用的完整实战指南:两款工具的定位差异(OpenClaw=聊天AI助手框架,Claude Code=代码库直接操作的编程工具)、在 OpenClaw 中通过 exec 工具调用 Claude Code CLI(claude 命令)执行编程任务、把 OpenClaw 的 Telegram 消息转化为 Claude Code 任务(用自然语言描述→Claude Code执行→返回结果)、使用 OpenClaw Cron 定期触发 Claude Code 执行代码审查/依赖更新/测试/文档生成、CRS 代理在两者中的统一接入方案,以及常见的协同架构模式(主动触发/被动响应/定时执行)。2026/3/24实战OpenClaw Trusted Proxy 反向代理认证完全指南:Nginx/Caddy 前置部署最佳实践OpenClaw Trusted Proxy 认证模式完整教程:为什么需要反向代理(HTTPS 证书/域名绑定/统一认证入口)、trusted-proxy 认证模式的工作原理(Nginx/Caddy 负责认证,通过 X-Forwarded-User 头传递身份给 Gateway)、Nginx + Basic Auth 配置示例、Caddy + JWT 配置示例、Cloudflare Access + OpenClaw 的零信任部署方案、让反向代理与 Gateway 之间的通信保持安全(内网绑定/Unix Socket)、常见错误排查(401 循环/WebSocket 升级失败/Underscores in Headers 问题)。2026/3/24