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

操作流程:

  1. 在另一台已登录 omicOS 账号的设备上打开终端给出的那个地址。
  2. 输入确认码并确认。
  3. 当前这台机器会自动轮询到批准结果,凭证写盘,登录完成。

最后那行 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 只清掉该账户的凭证,不影响同机器其他账户。这个过程自动完成,无需手工触发。)

下一步

results matching ""

    No results matching ""