帖子说了什么
@okozukai_gadget 用 iPhone 远程操作 Mac 上常驻的 Claude Code,结果又停了,原因是 CLI 登录过期。他总结了两点:用 claude setup-token 生成的一年期令牌不能用于 Remote Control;桌面 App 和 CLI 的登录是分开的。他的做法是登录失效时发通知提醒自己。另一位用户 @NoraHustles 也提到:这个令牌只发模型请求,用不了 claude.ai 的连接器和 Remote Control,而且不要共享给别人。
官方文档怎么写
对照官方 Authentication 文档:
- 用途:
claude setup-token面向 CI、脚本和没有浏览器登录条件的环境,生成一年期 OAuth 令牌,需要 Pro、Max、Team 或 Enterprise 订阅。 - 不会替你保存:它走和
/login一样的浏览器授权,批准后令牌只打印在终端里,不写入任何地方。你要自己把它设成环境变量CLAUDE_CODE_OAUTH_TOKEN。 - 能力有限:它只能发模型请求,不能建立 Remote Control 会话,也拿不到 claude.ai 连接器;本地配置的 MCP server 照常可用。Remote Control 的文档也写明,遇到这种情况要用
claude auth login换成完整权限的登录。 --bare不读它:脚本里如果加了--bare,CLAUDE_CODE_OAUTH_TOKEN不会被读取,要改用 API key 或apiKeyHelper。/login不会替你删掉它:设了这个环境变量时运行/login,当前会话会切到新登录,但之后每个新会话还会再读这个变量,直到你从 shell 配置或设置文件的env里删掉它。
保管建议
- 当密码对待:这是能用你订阅额度的一年期凭据。存进系统钥匙串或密钥管理工具,不要写进仓库、
.env模板或发给别人。把订阅凭据交给他人或中间商使用,本身也有账号风险。 - 只放在需要的机器上:常驻机器上用环境变量注入,不要在聊天记录、日志里出现完整值。
- 需要 Remote Control 的机器别用它:直接在那台机器上
/login(或claude auth login),并像原帖作者那样给「登录失效」加个提醒,免得任务停了很久才发现。 - 怀疑泄露:先从所有机器的环境变量和配置里移除,再重新登录生成新的凭据。官方文档里没有写单独撤销这种令牌的具体入口,遇到疑问以官方支持的答复为准。
如果你想让 Claude Code 跑在一台常开、整机独享的新加坡 Mac mini 上,可以了解 Zumac.Ai,咨询 Telegram @singatao。
