openclaw/docs/zh-CN/gateway/pairing.md

100 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
read_when:
- 在没有 macOS UI 的情况下实现节点配对审批
- 添加用于审批远程节点的 CLI 流程
- 扩展 Gateway网关协议以支持节点管理
summary: Gateway网关拥有的节点配对方案 B适用于 iOS 及其他远程节点
title: Gateway网关拥有的配对
x-i18n:
generated_at: "2026-02-01T20:35:26Z"
model: claude-opus-4-5
provider: pi
source_hash: 1f5154292a75ea2c1470324babc99c6c46a5e4e16afb394ed323d28f6168f459
source_path: gateway/pairing.md
workflow: 14
---
# Gateway网关拥有的配对方案 B
在 Gateway网关拥有的配对模式中**Gateway网关** 是决定哪些节点允许加入的权威来源。UImacOS 应用、未来的客户端)只是用于批准或拒绝待处理请求的前端。
**重要说明:**WS 节点在 `connect` 过程中使用**设备配对**(角色 `node`)。`node.pair.*` 是一个独立的配对存储,**不会**控制 WS 握手。只有显式调用 `node.pair.*` 的客户端才使用此流程。
## 概念
- **待处理请求**:节点请求加入,需要审批。
- **已配对节点**:已批准的节点,带有已签发的认证令牌。
- **传输层**Gateway网关 WS 端点转发请求但不决定成员资格。(旧版 TCP 桥接支持已弃用/移除。)
## 配对工作原理
1. 节点连接到 Gateway网关 WS 并请求配对。
2. Gateway网关存储一个**待处理请求**并发出 `node.pair.requested` 事件。
3. 你批准或拒绝该请求(通过 CLI 或 UI
4. 批准后Gateway网关签发一个**新令牌**(重新配对时令牌会轮换)。
5. 节点使用该令牌重新连接,此时即为"已配对"状态。
待处理请求会在 **5 分钟**后自动过期。
## CLI 工作流(适合无界面环境)
```bash
openclaw nodes pending
openclaw nodes approve <requestId>
openclaw nodes reject <requestId>
openclaw nodes status
openclaw nodes rename --node <id|name|ip> --name "Living Room iPad"
```
`nodes status` 显示已配对/已连接的节点及其能力。
## API 接口Gateway网关协议
事件:
- `node.pair.requested` — 创建新的待处理请求时发出。
- `node.pair.resolved` — 请求被批准/拒绝/过期时发出。
方法:
- `node.pair.request` — 创建或复用待处理请求。
- `node.pair.list` — 列出待处理和已配对的节点。
- `node.pair.approve` — 批准待处理请求(签发令牌)。
- `node.pair.reject` — 拒绝待处理请求。
- `node.pair.verify` — 验证 `{ nodeId, token }`
注意事项:
- `node.pair.request` 对每个节点是幂等的:重复调用返回相同的待处理请求。
- 批准操作**始终**生成新令牌;`node.pair.request` 不会返回任何令牌。
- 请求可包含 `silent: true` 作为自动批准流程的提示。
## 自动批准macOS 应用)
macOS 应用可在以下条件满足时选择性地尝试**静默批准**
- 请求标记为 `silent`,且
- 应用能够使用同一用户验证与 Gateway网关主机的 SSH 连接。
如果静默批准失败,则回退到常规的"批准/拒绝"提示。
## 存储(本地,私有)
配对状态存储在 Gateway网关状态目录下默认 `~/.openclaw`
- `~/.openclaw/nodes/paired.json`
- `~/.openclaw/nodes/pending.json`
如果你覆盖了 `OPENCLAW_STATE_DIR``nodes/` 文件夹会随之移动。
安全注意事项:
- 令牌是机密信息;请将 `paired.json` 视为敏感文件。
- 轮换令牌需要重新审批(或删除节点条目)。
## 传输层行为
- 传输层是**无状态的**;它不存储成员信息。
- 如果 Gateway网关离线或配对功能被禁用节点无法配对。
- 如果 Gateway网关处于远程模式配对仍然基于远程 Gateway网关的存储进行。