9. Claude Code 免重复登录:长期令牌
用 claude setup-token 生成一年有效的令牌,SSH、脚本、重启后都不用再登录。
在 Mac mini 上用 Claude Code,常见的麻烦是:重启后、换个终端、通过 SSH 或脚本运行时又要你去浏览器登录。按下面 4 步配一个长期令牌,一次设好,一年内都不用再登录。
需要 Claude 付费订阅(Pro / Max)。每台 Mac mini 做一次。
第 1 步:生成令牌
在 Mac mini 上打开“终端”(按 ⌘+空格,输入 Terminal 回车),运行:
claude setup-token
浏览器会打开 Claude 授权页,点同意。回到终端,会显示一串以 sk-ant-oat 开头的令牌,先复制下来(只显示这一次)。
第 2 步:存进只有你能读的文件
运行下面这行,然后粘贴令牌、回车(粘贴时屏幕不显示,是正常的):
read -rs T && printf 'export CLAUDE_CODE_OAUTH_TOKEN="%s"\n' "$T" > ~/.claude-token && chmod 600 ~/.claude-token && unset T && echo 已保存
这样令牌不会留在终端的历史记录里。chmod 600 表示只有你这个账号能读这个文件。
第 3 步:让每个终端自动读到
grep -q claude-token ~/.zshenv 2>/dev/null || echo '[ -f ~/.claude-token ] && source ~/.claude-token' >> ~/.zshenv
写在 ~/.zshenv(不是 ~/.zshrc):这样 ssh 机器 claude 这种非交互方式、定时任务和脚本也能读到令牌。重复运行不会写两遍。
第 4 步:试一下
关掉终端,重新打开,运行:
claude -p "你好"
直接回答、没让你登录,就设好了。从别的电脑 SSH 过来也可以试:ssh 用户名@机器地址 'claude -p "你好"'。
常见问题
| 情况 | 怎么办 |
|---|---|
| 还是让我登录 | 先看 echo ${CLAUDE_CODE_OAUTH_TOKEN:0:12} 有没有输出。没有:检查第 3 步那行在不在 ~/.zshenv 里,再开新终端。 |
| 用的是 API Key 计费,不是订阅 | 环境里设了 ANTHROPIC_API_KEY 时会优先用它。只想用订阅,就把那行删掉。 |
| 一年后过期了 | 重做第 1、2 步,第 3 步不用动。 |
| 换了 Claude 账号 | 同上,重新生成并覆盖 ~/.claude-token。 |
安全
令牌就等于你的 Claude 账号:不要发给任何人、不要截图、不要放进 Git 仓库、网盘或群聊,我们的客服也不会问你要。
- 退租前删掉:运行
rm -f ~/.claude-token,再把~/.zshenv里那一行删掉。退租后这台机器会给下一位客户用。 - 怀疑令牌泄露:马上删掉文件,修改 Claude 账号密码并退出其他设备的登录,再重新生成。