安全扫描
OpenClaw
安全
high confidence该技能的代码和运行时指令与其声明目的(修复 OpenClaw CLI 设备作用域)一致,不会调用意外的外部端点,但会修改本地 auth 文件并可能生成高权限令牌——请谨慎运行,优先使用 dry-run 并手动确认。
评估建议
该技能确实如其所述:通过编辑 ~/.openclaw 下的 OpenClaw 配置文件,诊断并修复 OpenClaw CLI device scope 问题。使用前请:(1) 自行审查脚本(已附带);(2) 务必先运行 python3 scripts/fix.py --dry-run,确认即将发生的变更;(3) 备份 paired.json 与 device-auth.json(脚本也会生成 .bak 文件);(4) 除非信任环境与意图,否则勿加 --force;(5) 注意脚本会生成并写入新的 operator-admin token——相关文件请视为敏感;(6) 若担心自动/代理调用,可为该技能关闭自主调用,或仅手动调用以便人工确认变更。...详细分析 ▾
✓ 用途与能力
名称/描述与实际行为一致:所有脚本都会诊断、更新并验证存储在 ~/.openclaw 下的 OpenClaw device scope 状态。读取并更新 paired.json、device-auth.json 和 pending.json 以实现所述修复。
ℹ 指令范围
SKILL.md 要求运行 diagnose.py、fix.py(带 --dry-run 并交互确认)以及 verify.py。这些脚本只做一件事:执行本地 `openclaw` CLI 命令,并在 OpenClaw 配置目录下读写文件。这属于允许范围,但 fix 脚本会写入新的 operator token 并修改 auth 状态——这是敏感操作;技能文档已说明,并通过默认启用 dry-run 和交互确认提示来降低风险。
✓ 安装机制
无安装规范;仅为指令 + 脚本。不会从外部下载或安装任何内容,因此不存在与安装程序相关的风险。
ℹ 凭证需求
该技能无需环境变量,也无需外部凭据;但需要访问文件系统路径 ~/.openclaw(paired.json、device-auth.json、pending.json),并会覆盖这些文件——与所述任务相称,但属于高敏感度访问,因其会修改身份验证令牌与已授权作用域。
⚠ 持久化与权限
该技能未请求持久平台权限(always:false),但可创建新的 operator-admin token 并持久化到 device-auth.json 与 paired.json。由于平台代理可自主调用技能(disable-model-invocation 默认为 false),自主调用配合脚本的 --force 选项可能在无人工确认的情况下提升本地代理权限。SKILL.md 与代码默认采用交互式确认(dry-run / prompt),若由人工运行可降低此风险。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/4/23
修复 CLI 设备权限不足导致的 pairing required 死循环
● 可疑
安装命令
点击复制官方npx clawhub@latest install fix-cli-device-scope
镜像加速npx clawhub@latest install fix-cli-device-scope --registry https://cn.longxiaskill.com
技能文档
修复 OpenClaw CLI 设备 scope 权限不足导致的配对失败。
症状
``
sessions_spawn error: gateway closed (1008): pairing required
[tools] cron failed: gateway closed (1008): pairing required
`
同时确认:
openclaw gateway status显示 gateway runningopenclaw devices list显示 CLI 设备 Paired 但 scopes 只有operator.read,没有 admin
---
快速诊断
一行命令输出完整诊断:
`bash
python3 scripts/diagnose.py
`
输出示例(需要修复):
`
=== CLI Device Scope 诊断 ===
✓ Gateway 正在运行
设备 ID: 2f5c98cfd06a980cb20ca1217580e6d8be7df78034a278b0fdaf81a9d8ac99c5
当前 scopes: ['operator.read']
pending: 1 repair 请求
⚠️ 需要修复:CLI 设备缺少 admin scope
死循环:当前只有 read,无法 approve 自己的升级请求
修复命令:
python3 scripts/fix.py --dry-run # 先预览
python3 scripts/fix.py # 执行修复
` ---
核心原因
Gateway 设备的 scope 太低(只有 operator.read),而 subagent spawn / cron 等操作需要 operator.admin。有一个 repair pending 请求在队列里等着升级 scope,但当前 token 权限不够 approve 不了——死循环:
`
需要 admin scope → 才能 approve → admin scope 申请
` ---
⚠️ 检查点:修复前确认
执行修复脚本前,必须先展示将要改动的配置,等待用户确认:
`bash
# 先用 --dry-run 看改动(不执行写入)
python3 scripts/fix.py --dry-run
# 输出示例:
# Device: 2f5c98cf...
# Current scopes: ['operator.read']
# New scopes: ['operator.admin', 'operator.read', 'operator.write', ...]
# Files to modify:
# - paired.json
# - device-auth.json
# - pending.json (cleanup)
# ❓ Proceed? [y/N]:
`
用户确认后才执行:
`bash
python3 scripts/fix.py # 默认会先展示再询问
python3 scripts/fix.py --force # 跳过确认(仅限自动化场景)
` ---
验证修复
`bash
# 重启 gateway 加载新 scope
openclaw gateway restart
# 等待 ~5 秒后测试 spawn
`
用 sessions_spawn 工具验证,应该返回 status: accepted。 ---
预防措施
修改前先备份paired.json.bak和device-auth.json.bak确认 DEVICE_ID 是要修的设备(看clientId=cli且platform=linux)- 不要删除其他正常设备的 paired 记录
修复后建议openclaw doctor --fix检查整体健康状态
---
注意事项
- 必须重启 gateway 才能加载新 scopes
新 token 格式cli_admin_,每次修复会更新- 如果 gateway 从旧备份恢复,旧 token 会重新生效,需重新修复
没有 pending repair 请求的情况下,可手动构造 full_scopes 列表写入(['operator.admin', 'operator.read', 'operator.write', 'operator.approvals', 'operator.pairing', 'operator.talk.secrets']`)