网淘吧来吧,欢迎您!

Credential Manager

2026-03-29 新闻来源:网淘吧 围观:10
电脑广告
手机广告

凭据管理器

状态:强制性安全基础

将分散的API密钥和凭据整合到一个安全的、集中的.env文件中。

⚠️ 这不是可选项

集中化的.env凭据管理是OpenClaw安全性的核心要求。如果你的凭据分散在多个文件中,请立即停止并整合它们

规则:所有凭据必须且仅能放在~/.openclaw/.env文件中。不能放在工作区、技能或脚本目录中。

参见:

基础

每个OpenClaw部署都必须具备:

~/.openclaw/.env (mode 600)

这是您所有凭据的唯一真实来源。没有例外。

为什么?

  • 单一位置 = 更易于保护
  • 文件模式600 = 只有您能读取
  • Git忽略 = 不会意外提交
  • 验证格式 = 捕捉错误
  • 审计跟踪 = 了解变更内容

分散的凭据 = 分散的攻击面。此技能解决了这个问题。

此技能的作用

  1. 扫描常见位置的凭据
  2. 备份现有凭据文件(带时间戳)
  3. 整合~/.openclaw/.env
  4. 保护以适当权限(600)
  5. 验证安全性和格式
  6. 强制执行最佳实践
  7. 清理迁移后的旧文件

检测参数

该技能通过扫描以下内容自动检测凭据:

文件模式:

  • credentials.json配置目录中的文件
  • .env文件
  • 名称中包含-credscredentials的内存文件

敏感密钥模式:

  • API密钥、访问令牌、承载令牌
  • 密钥、密码、口令
  • OAuth消费者密钥
  • 私钥、签名密钥、钱包密钥
  • 助记词和种子短语

安全检查:

  • 文件权限(必须为600Git-ignore 保护
  • 格式验证
  • 快速开始

完整迁移(推荐)

单独操作

# Scan for credentials
./scripts/scan.py

# Review and consolidate
./scripts/consolidate.py

# Validate security
./scripts/validate.py

常见凭证位置

# Scan only
./scripts/scan.py

# Consolidate specific service
./scripts/consolidate.py --service x

# Backup without removing
./scripts/consolidate.py --backup-only

# Clean up old files
./scripts/cleanup.py --confirm

该技能会扫描以下位置:

安全功能

~/.config/*/credentials.json
~/.openclaw/workspace/memory/*-creds.json
~/.openclaw/workspace/memory/*credentials*.json
~/.env (if exists, merges)

文件权限:.env文件权限设置为 600(仅所有者可读写) ✅Git 保护:创建/更新.gitignore文件 ✅备份:更改前创建带时间戳的备份 ✅验证:检查格式、权限和重复项 ✅模板:创建.env.example.env.example(可安全分享)

输出结构

迁移后:

~/.openclaw/
├── .env                     # All credentials (secure)
├── .env.example             # Template (safe)
├── .gitignore               # Protects .env
├── CREDENTIALS.md           # Documentation
└── backups/
    └── credentials-old-YYYYMMDD/  # Backup of old files

支持的服务

自动检测的常见服务:

  • X(Twitter):OAuth 1.0a 凭证
  • Molten:智能体意图匹配
  • Moltbook:智能体社交网络
  • Botchan/4claw:网络协议
  • OpenAI、Anthropic、Google:AI 服务提供商
  • GitHub、GitLab:代码托管平台
  • 通用模式: API_KEY*_TOKEN*_SECRET等模式

参见references/supported-services.md查看完整列表。

安全最佳实践

请参阅references/security.md获取详细的安全指南。

快速检查清单:

  • .env文件权限为 600
  • .env文件已被 Git 忽略
  • ✅ 代码或日志中不包含凭据
  • ✅ 定期轮换密钥
  • ✅ 为不同环境使用独立的密钥

脚本

所有脚本均支持--help参数以获取详细用法。

scan.py

# Scan and report
./scripts/scan.py

# Include custom paths
./scripts/scan.py --paths ~/.myapp/config ~/.local/share/creds

# JSON output
./scripts/scan.py --format json

consolidate.py

# Interactive mode (prompts before changes)
./scripts/consolidate.py

# Auto-confirm (no prompts)
./scripts/consolidate.py --yes

# Backup only
./scripts/consolidate.py --backup-only

# Specific service
./scripts/consolidate.py --service molten

validate.py

# Full validation
./scripts/validate.py

# Check permissions only
./scripts/validate.py --check permissions

# Fix issues automatically
./scripts/validate.py --fix

cleanup.py

# Dry run (shows what would be deleted)
./scripts/cleanup.py

# Actually delete old files
./scripts/cleanup.py --confirm

# Keep backups
./scripts/cleanup.py --confirm --keep-backups

迁移工作流

第一步:发现

./scripts/scan.py

查看输出以了解将迁移哪些内容。

第二步:备份与整合

./scripts/consolidate.py

创建备份,构建.env文件,设置权限。

第三步:验证

./scripts/validate.py

确保一切安全且正确。

第四步:测试使用新的.env文件测试您的应用程序/技能。

第五步:清理

./scripts/cleanup.py --confirm

移除旧的凭据文件(备份保留)。

致技能开发者:强制执行此标准

其他 OpenClaw 技能在使用凭据前必须验证其安全性:

Python 技能

#!/usr/bin/env python3
import sys
from pathlib import Path

# Add credential-manager scripts to path
sys.path.insert(0, str(Path.home() / '.openclaw/skills/credential-manager/scripts'))

# Enforce secure .env (exits if not compliant)
from enforce import require_secure_env, get_credential

require_secure_env()

# Now safe to load credentials
api_key = get_credential('SERVICE_API_KEY')

Bash 技能

#!/usr/bin/env bash
set -euo pipefail

# Validate .env exists and is secure
if ! python3 ~/.openclaw/skills/credential-manager/scripts/enforce.py; then
    exit 1
fi

# Now safe to load
source ~/.openclaw/.env

这将创建一个快速失败系统:如果凭据未得到适当保护,技能将拒绝运行。用户将被迫修复此问题。

加载凭据

迁移后,从.env加载:

Python

import os
from pathlib import Path

# Load .env
env_file = Path.home() / '.openclaw' / '.env'
with open(env_file) as f:
    for line in f:
        if '=' in line and not line.strip().startswith('#'):
            key, val = line.strip().split('=', 1)
            os.environ[key] = val

# Use credentials
api_key = os.getenv('SERVICE_API_KEY')

Bash

# Load .env
set -a
source ~/.openclaw/.env
set +a

# Use credentials
echo "$SERVICE_API_KEY"

使用现有加载器

如果您使用OpenClaw脚本迁移:

from load_credentials import get_credentials
creds = get_credentials('x')

添加新凭据

编辑~/.openclaw/.env

# Add new service
NEW_SERVICE_API_KEY=your_key_here
NEW_SERVICE_SECRET=your_secret_here

同时更新模板:

# Edit .env.example
NEW_SERVICE_API_KEY=your_key_here
NEW_SERVICE_SECRET=your_secret_here

回滚

如果出现问题:

# Find your backup
ls -la ~/.openclaw/backups/

# Restore specific file
cp ~/.openclaw/backups/credentials-old-YYYYMMDD/x-credentials.json.bak \
   ~/.config/x/credentials.json

注意事项

  • 默认非破坏性:原始文件在移除前已备份
  • 幂等性:可安全多次运行
  • 可扩展:在脚本中添加自定义凭据模式
  • 安全:绝不记录完整凭据,仅记录元数据
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Search Reddit 下一篇:Job Search

相关文章

您是本站第309482名访客 今日有319篇新文章/评论