如何通过 SSH 在远程服务器上登录 Claude Code

在没有浏览器的服务器上,通过 SSH 用粘贴代码登录、一年有效的 setup-token 或 API 密钥登录 Claude Code,并让从手机启动的会话保持可用。

基于版本
CLI
0.2.17
预览 ref
a2c45c8

简要回答

在通过 SSH 访问的服务器上,Claude Code 无法打开浏览器,而你笔记本上的浏览器也访问不到服务器本地的回调。有三种方法:

  1. 粘贴代码登录。 运行 claude,在笔记本或手机上打开登录 URL 并登录,再把浏览器显示的代码粘贴回终端。适合偶尔会坐到跟前的机器。
  2. 长期有效的令牌。 在有浏览器的电脑上运行 claude setup-token,然后在服务器上设置 CLAUDE_CODE_OAUTH_TOKEN。适合无人值守的机器。
  3. API 密钥。 设置 ANTHROPIC_API_KEY。通过 Claude Console 按 token 计费,适合脚本和 CI。

如果登录界面无法让你通过 SSH 复制 URL,直接用方法 2。

问题

一种常见的配置:Claude Code 会话运行在另一个房间的 Linux 机器上。仓库在那里,它也从不睡眠。第一次通过 SSH 在上面运行 claude 时,登录界面要求打开浏览器,而这台机器没有浏览器。

笔记本上的浏览器可以打开链接,但登录后它会尝试跳转回笔记本上的 localhost,而那里什么都没有在监听。几周后凭据过期,你又得重来一遍,也许还是在火车上用手机操作。

所以真正的问题是:如何登录一次、如何保持登录状态,以及不在键盘前时该怎么办。

方法 1:通过 SSH 用粘贴代码流程登录 Claude Code

这是常规路径,Anthropic 的认证文档也针对 SSH 和无头主机介绍了它。

ssh you@server
claude

在登录界面:

  1. 按 c 复制登录 URL,或者选中它。
  2. 在笔记本或手机的浏览器中打开并登录。
  3. 浏览器访问不到服务器的回调,于是会显示一个代码而不是跳转。
  4. 把代码粘贴到 Paste code here if prompted 提示处。

容易卡住的地方:

  • 复制快捷键复制到的是服务器的剪贴板,通过 SSH 你拿不到。Claude Code 仓库的一个 GitHub issue 报告说,URL 在全屏登录界面中换行,导致也无法选中。如果你遇到这种情况,用方法 2。
  • tmux 和较窄的终端可能会让 URL 折行。复制前先把窗口拉宽或放大窗格。
  • 凭据会过期。 过期后,这台机器上的下一个会话又会停在登录界面,你又得通过 SSH 重做一遍。

方法 2:用长期有效的 claude setup-token 登录 Claude Code

对于无人值守的机器,Anthropic 提供了一年有效的 OAuth 令牌。在有浏览器的电脑上创建一次即可:

# on your laptop
claude setup-token

它会打开与 /login 相同的浏览器登录,打印令牌,但不会保存到任何地方。复制下来,然后在服务器上:

# on the server, in the environment the agent runs in
export CLAUDE_CODE_OAUTH_TOKEN=your-token
claude

Anthropic 的文档对这个令牌的说明:

  • 需要 Pro、Max、Team 或 Enterprise 订阅。
  • 它只能发起模型请求,因此不能启动 Claude Code Remote Control 会话,也不能获取 claude.ai 连接器。本地配置的 MCP 服务器仍然可用。
  • --bare 模式不会读取它。如果脚本传了 --bare,请改用 API 密钥。

两条实用提示:

  • 把令牌放在只有你的用户能读取的地方,例如一个用于加载的 0600 文件,而不是共享机器上的 shell 配置文件。能读到它的任何东西都能消耗你的订阅。
  • 在代理实际启动的地方设置它。 如果 Claude Code 由后台服务启动,你在交互式 shell 中 export 的变量在那里并不存在。这是令牌“SSH 下能用、服务里不行”常见原因。

方法 3:在服务器上使用 Anthropic API 密钥

export ANTHROPIC_API_KEY=sk-ant-...
claude

Claude Code 会让你确认一次密钥,之后就跳过浏览器。它通过 Claude Console 按 token 计费,与 Pro 或 Max 订阅分开。适合脚本和定时任务。

让从手机启动的会话保持 Claude Code 登录

方法 1 到 3 解决的是第一次登录。更难的是第二次:一个月后从手机启动的会话,卡在一台你没有 SSH 连上的机器的过期登录上。

如果你想从手机启动和引导服务器上的 Claude Code 会话,并且不用打开 SSH 应用就能看到哪个会话卡在登录上,Happier 是一款开源应用,可以从手机、桌面或网页跨设备运行和编排 Claude Code、Codex 等代理。

代理运行在你自己的电脑或服务器上,手机、桌面或网页应用连接到它。设置方法见如何在手机上使用 Happier。它在 GitHub 上开源,可以在这里下载,还有一个 Discord。

登录这部分是这样工作的。

1) 扫描二维码把服务器与 Happier 配对

在服务器上:

curl -fsSL https://happier.dev/install | bash
happier auth login --method mobile

终端会显示一个二维码。用手机上的 Happier 应用扫描并批准。如果你在已经安装了 Happier CLI 的笔记本上,happier auth pair-remote --ssh you@server 会通过 SSH 帮你完成配对。

2) 在 Happier 应用中登录服务器上的 Claude Code

在应用中打开 设置(Settings)→ AI 与代理(AI & Agents)→ AI 提供商设置(AI backends)→ Claude,在上下文栏中选择服务器(在 Happier 中称为机器),查看 认证(Authentication)部分。它会显示 Claude Code 在那台电脑上是否已登录,以及登录方式。

登录(Log in)或 重新认证(Reauthenticate)会打开一个 提供商登录终端(Provider login terminal),在服务器上运行 Claude Code 并替你发送 /login。你在手机上打开 URL、登录,再把代码粘贴回那个终端。这就是方法 1,只是不需要 SSH 应用。用其他方式登录后,立即检查(Check now)会刷新状态。

3) 把 Claude setup-token 一次性存到 Happier

如果你更想用 setup-token,Happier 可以把它作为已连接服务替你保存:

claude setup-token          # on a computer with a browser
happier connect claude      # paste the token when asked

happier connect claude 默认要求输入 setup-token。令牌加密保存在你的 Happier 账号中,只在你自己的设备上解密。它会出现在 设置(Settings)→ 已连接服务(Connected services)下,你在任何一台电脑上启动 Claude 会话时都可以选择它。Anthropic API 密钥也可以用 happier connect claude --api-key 以同样的方式保存。

坦白说的限制:服务器仍需开机且可访问。Happier 无法让关机的机器保持登录,提供商对令牌的规定也依然适用。

故障排除

在 Claude Code 登录界面按 c 复制不到能粘贴的内容

复制到的是服务器,而不是你的笔记本。用终端自带的选择功能选中 URL,把窗口拉宽避免折行,或者在另一台电脑上使用 claude setup-token。

Claude 登录后浏览器访问不到 localhost

那是回调在尝试访问你的笔记本。回到显示代码的浏览器标签页,或者重新开始登录并找到代码步骤。通过 SSH 时,使用代码就是预期的路径。

Claude Code 通过 SSH 能用,但服务启动的会话要求登录

服务看不到你交互式 shell 的环境。在服务的环境中设置 CLAUDE_CODE_OAUTH_TOKEN,或者把令牌存为已连接服务,让会话在启动时获取它。

用 setup-token 无法启动 Claude Code Remote Control

Anthropic 的文档说明 setup-token 只能发起模型请求,所以 Remote Control 需要方法 1 中的常规 claude.ai 登录。

常见问题

能完全不用浏览器登录 Claude Code 吗?

你需要在某个地方用一次浏览器,可以是笔记本也可以是手机。claude setup-token 和粘贴代码登录都使用另一台设备上的浏览器。只有 API 密钥能完全跳过浏览器。

setup-token 有效期多长?

根据 Anthropic 的文档是一年。它只打印一次且不保存,所以关闭终端前先保存好。

需要 Claude Pro 或 Max 吗?

粘贴代码登录和 setup-token 需要 Claude 订阅(setup-token 需要 Pro、Max、Team 或 Enterprise)。API 密钥不需要订阅,通过 Console 计费。

可以把笔记本上的 ~/.claude 复制到服务器吗?

有人这么做,但这不是文档化的登录方式,而且当提供商轮换凭据时,复制的凭据可能失效。在另一台电脑上复用登录的文档化方式是 setup-token。

在树莓派或 VPS 上也一样吗?

一样。步骤与硬件无关,只取决于机器上有没有浏览器。

相关指南

claudesshlinuxheadlessself-host
最后更新: 2026-10-26