Credential Scanner 是一款面向 OpenClaw 项目的凭据扫描工具,其核心用途是在用户运行任何具有 fileRead 权限的技能之前,扫描工作区中可能被读取并外泄的敏感信息,从而防止凭据意外泄露。
主要能力
工具默认扫描范围为当前工作区,优先检查项目级高风险文件,包括 .env、.env.local、.env.production 等环境文件,docker-compose.yml 中的 environment 部分,config.json、settings.json、secrets.json,以及 .pem、.key、.p12、.pfx 等密钥文件。在获得用户明确同意后,还可扫描主目录文件,如 ~/.aws/credentials、~/.aws/config、~/.ssh/id_rsa、~/.ssh/id_ed25519、~/.ssh/config、~/.netrc、~/.npmrc、~/.pypirc。
检测模式覆盖多种常见凭据类型:AWS Access Key(AKIA[0-9A-Z]{16})、OpenAI API Key(sk-[a-zA-Z0-9]{48})、Anthropic API Key(sk-ant-[a-zA-Z0-9-]{80,})、GitHub Personal Token(ghp_[a-zA-Z0-9]{36})、GitHub OAuth Token(gho_[a-zA-Z0-9]{36})、GitLab Personal Token(glpat-[a-zA-Z0-9-]{20})、Slack Bot Token(xoxb-[0-9]{10,}-[a-zA-Z0-9]{24})、SendGrid API Key(SG.[a-zA-Z0-9-]{22}.[a-zA-Z0-9-_]{43}),以及 RSA/EC/DSA/OPENSSH 私钥、PGP 私钥块、含凭据的数据库 URL(postgres/mysql/mongodb)和通用密码/密钥字段(password、secret、token、api_key、apikey 后跟 8 位以上字符串)。
使用方式
工具以扫描报告形式输出结果,报告包含项目目录、扫描文件数、发现密钥数,并对每个发现标注严重级别(CRITICAL 或 WARNING)、文件路径与行号、类型、脱敏后的值以及修复建议。报告末尾会给出整体建议,例如将 .env 加入 .gitignore、立即轮换已暴露的密钥、考虑使用密钥管理器(如 1Password CLI、Vault、Doppler)。
适用场景
适用于在 OpenClaw 项目中运行任何具有 fileRead 权限的技能之前进行安全检查,尤其适合在运行具有网络访问权限的技能前使用,此时所有发现会被升级为 CRITICAL。也适合日常开发中检查项目是否意外提交了敏感文件。
限制与规则
工具不会显示完整的密钥值,始终以 ████████ 截断。它会跳过 node_modules、vendor、.git、dist、build 目录,跳过二进制文件和锁文件(package-lock.json、yarn.lock、pnpm-lock.yaml),以及路径中明确标记为 example、test、mock、fixture 的测试样例。工具会检查 .gitignore 并在敏感文件未被忽略时发出警告,区分已提交的密钥(严重)与仅本地文件(警告),并检查 .env.example 是否意外包含真实值。主目录文件仅在用户明确同意后才会扫描。