5. 首次登录与云端账户
把本机与 omicOS 云账户关联。智能体聊天、跨设备查看、订阅分层都依赖它。
登录有两条路:
- 网页 / 图形界面登录(最常见)。 有浏览器就无需碰命令行。
omicos serve会自动打开 app.omicos.cn,在页面里用邮箱 / 密码登录。桌面版和 omicos.cn 用同一套账户。 - 终端登录(无图形界面场景)。 HPC、服务器等无浏览器环境,全程在终端完成。见下面 5.1 / 5.2。
终端登录又分两种,区别在于认证方式:
| 方式 | 命令 | 怎么认证 |
|---|---|---|
| 邮箱 / 密码 | omicos login |
直接在终端输入邮箱和密码 |
| 设备码配对 | omicos cli login |
终端打印一个配对码,在另一台已登录 omicOS 的设备上确认 |
大多数情况下 omicos login 最简单。
5.1 邮箱 / 密码登录:omicos login
无需浏览器。任何机器(笔记本、服务器、HPC 登录节点)都能用:
omicos login
预期输出(交互式,Email: / Password: 是提示符,密码输入不回显):
Email: you@example.com
Password:
[omicos] logged in as you@example.com
[omicos] process: my-analysis
[omicos] config: /Users/you/.omicos/cloud_login.json
可用参数:
| 参数 | 作用 |
|---|---|
--email <地址> |
直接传邮箱,跳过交互提示 |
--password <密码> |
直接传密码(会留在 shell 历史里,慎用) |
--name <名称> |
覆盖进程显示名(默认取 conda 环境名或当前目录名) |
--force |
即使已登录也强制重新认证 |
--server <URL> |
认证服务地址,默认 https://auth.omicos.cn |
--status |
不登录,只校验当前登录状态并打印 |
--logout |
登出,删除本地凭证 |
检查当前登录状态:
omicos login --status
预期输出(已登录):
[omicos] logged in as you@example.com
[omicos] process: my-analysis
[omicos] config: /Users/you/.omicos/cloud_login.json
预期输出(未登录):
[omicos] not logged in: not logged in
已登录时再跑 omicos login,不会重复认证:
omicos login
预期输出:
[omicos] already logged in as you@example.com
[omicos] process: my-analysis
[omicos] config: /Users/you/.omicos/cloud_login.json
要强制重新认证,加 --force。
5.2 设备码配对登录:omicos cli login
不想在这台机器上输入密码,或想从已登录 omicOS 的设备授权这台新机器,用设备码配对:
omicos cli login
预期输出:
→ Open this URL in a browser where you're signed in to omicos:
https://auth.omicos.cn/device
→ Confirm code:
ABCD-WXYZ
Waiting for approval... (Ctrl-C to cancel)
✓ approved
✓ logged in as you@example.com
config: /Users/you/.omicos/cloud_login.json
core: no running local core detected
操作流程:
- 在另一台已登录 omicOS 账号的设备上打开终端给出的那个地址。
- 输入确认码并确认。
- 当前这台机器会自动轮询到批准结果,凭证写盘,登录完成。
最后那行 core: 报告本机有没有正在运行的 omicos。有的话,新凭证同步给它,无需重启。
设备码登录的参数只有两个:--server(默认 https://auth.omicos.cn)和 --logout。
何时用哪种? 知道账号密码、想一步到位 →
omicos login。新机器、不方便输密码、但另一台设备已登录 →omicos cli login。两者都在终端完成,本机都不需要浏览器。
5.3 登录后留下了什么
凭证文件叫 cloud_login.json,有两个可能的位置:
omicos login默认写到全局的~/.omicos/cloud_login.json。这也是它打印的config:路径,与运行目录无关。- 读取时先看工作区本地的
<当前目录>/.omicos/cloud_login.json,全局副本作为回退。云端账户切换、凭证对齐会把凭证写到工作区本地那份。同一个工作区里,omicos serve用该工作区的登录身份。 - 设了
OMICOS_LOCAL_HOME时,两处都指向$OMICOS_LOCAL_HOME/cloud_login.json。
文件权限是 0600(仅本人可读写),内容包含:
| 字段 | 含义 |
|---|---|
server |
登录时使用的认证服务地址 |
user_token |
长效用户令牌,认证用户级 API(如查询账户、订阅信息) |
process_token |
进程令牌,用于云端进程连接与心跳,每次登录都会轮换 |
process_id |
云端进程标识,形如 local-<workspace_id> |
process_name |
进程显示名(--name 可覆盖) |
user |
账户信息,其中 user.cloud_base 是后续所有云端调用的域名依据 |
logged_in_at |
登录时间(Unix 秒) |
cloud_login.json 里的 user_token 是长效令牌——拿到它就等于拿到你的账户。切勿提交到 git、粘贴到聊天里、或拷给别人。
两个容易中招的场景:一是把整个工作区目录打包发给同事,.omicos/ 会一起走;二是 Windows 的权限模型和 Unix 的 0600 不同,别默认它一定是私有的。真的泄露了,执行一次 omicos login --logout 再重新登录,process_token 会轮换。
5.4 登出
omicos login --logout
预期输出:
[omicos] logged out
omicos cli logout
预期输出:
[omicos cli] logged out
removed /Users/you/.omicos/cloud_login.json
未登录时跑 omicos cli logout 会打印 [omicos cli] not logged in。
omicos login --logout会把工作区本地和全局的cloud_login.json一并删掉,这台机器就完全登出。(另有「按账户清理」场景:云端判定某账户失效时,omicos 只清掉该账户的凭证,不影响同机器其他账户。这个过程自动完成,无需手工触发。)