OriginRouter CLI登录与设备
登录与设备
CLI 使用设备代码登录:终端会显示一次性用户代码和验证地址,你在任意浏览器完成确认即可,无需这台电脑接收浏览器回调,因此适用于桌面终端、SSH、Docker 和 CI。
首次设备确认、二维码信任和撤销操作可在 App 中完成;界面流程参见App 设备与安全。
登录流程
originrouter login --device-name "Studio Mac"
- CLI 请求设备代码并保存待激活的设备安全身份。
- 默认打开浏览器并显示 8 位用户代码。
- 用户在验证页确认账户和设备。
- CLI 轮询授权结果,成功后保存长期登录凭据(Refresh Token)和按用途生成的短期访问凭据(Access Token)。日常使用无需手动复制这些凭据。
安装设备 ID 是随机生成并持久化的,不从 MAC 地址、序列号或 machine-id 派生。
登录参数
| 参数 | 用途 |
|---|---|
--device-name <name> | 设置账户设备列表中的易读名称 |
--no-browser | 不自动打开浏览器,只打印地址和代码,适用于 SSH、Docker、CI |
--surety-url <url> | 覆盖 Surety OAuth 根地址,默认读取 SURETY_BASE_URL 或正式地址 |
--login-url <url> | 覆盖浏览器授权页根地址 |
无浏览器环境:
originrouter login --no-browser --device-name "Build runner"
用户代码属于有时效的一次性凭据,不应作为长期凭据保存或复用。
状态、验证和注销
| 命令 | 作用 |
|---|---|
login status | 查看本地登录状态 |
auth status | 查看认证材料和状态摘要 |
auth verify | 向服务端验证当前认证是否仍有效 |
devices [--json] | 列出账户已授权 CLI 设备 |
logout | 清除本机登录材料,但不主动移除账户设备记录 |
logout --remove-device | 同时请求移除当前设备授权 |
security status | 查看设备 E2EE 身份状态(不是 Local API Token) |
security rotate | 登录后轮换设备 E2EE 密钥 |
自动化流程应优先使用 auth verify 或受支持的 --json 输出,不应通过终端文案判断登录状态。
本地 API 访问密钥
token show 与 local key show 显示 Local API Bearer Token 和地址。
它们与 security status 显示的设备加密身份是两套不同凭据:Local API Token 用于 App 或其他本机客户端访问 CLI;设备加密身份用于设备之间建立加密控制通道。
token rotate 与 local key rotate 会立即使已有本地客户端凭据失效。轮换后,请重新连接 App 或其他 Local API 客户端。
originrouter token rotate
轮换 Local API Token 后,已有本地客户端凭据会立即失效。
查看后台服务当前端口:
originrouter daemon-port
security rotate 需要已登录账户;轮换完成后,正在运行的后台服务会自动使用新设备密钥,通常不需要手动重装服务。
错误恢复
| 现象 | 恢复方式 |
|---|---|
| 用户代码过期或轮询超时 | 重新运行 originrouter login,生成新代码 |
| 浏览器中拒绝授权 | 确认是否应添加设备,再重新登录 |
| 设备被撤销或身份不匹配 | 重新登录,完成新的设备身份授权 |
| CLI 版本不支持当前 E2EE 协议 | 更新 CLI 后重新登录 |
| 达到账户设备上限 | 在 App 中撤销不再使用的设备后重试 |
| 当日密钥轮换达到限制 | 等待下一个 UTC 日再轮换 |
重新登录前可运行 originrouter doctor 区分网络问题、中继服务问题和本地文件缺失。