Cómo iniciar sesión en Claude Code en un servidor remoto por SSH
Inicia sesión en Claude Code en un servidor sin navegador por SSH con el inicio de sesión por código, un setup-token de un año o una clave de API, y mantenlo activo para las sesiones que abres desde el móvil.
- CLI
- 0.2.17
- Ref de preview
- a2c45c8
En resumen
En un servidor al que accedes por SSH, Claude Code no puede abrir un navegador, y el navegador de tu portátil no llega al callback local del servidor. Tienes tres formas de entrar:
- Inicio de sesión pegando un código. Ejecuta
claude, abre la URL de inicio de sesión en el portátil o el móvil, entra y pega en la terminal el código que muestra el navegador. Sirve para un equipo delante del que te sientas de vez en cuando. - Un token de larga duración. Ejecuta
claude setup-tokenen un ordenador con navegador y defineCLAUDE_CODE_OAUTH_TOKENen el servidor. Sirve para un equipo delante del que no se sienta nadie. - Una clave de API. Define
ANTHROPIC_API_KEY. Se factura por token a través de Claude Console y es la opción adecuada para scripts y CI.
Si la pantalla de inicio de sesión no te deja copiar la URL por SSH, pasa directamente a la opción 2.
El problema
Una configuración habitual: las sesiones de Claude Code se ejecutan en un equipo Linux en otra habitación. Tiene los repositorios y nunca entra en reposo. La primera vez que ejecutas claude allí por SSH, la pantalla de inicio de sesión te pide abrir un navegador, y el equipo no tiene navegador.
El navegador de tu portátil puede abrir el enlace, pero después de iniciar sesión intenta devolverte a localhost en el portátil, donde no escucha nada. Unas semanas después caducan las credenciales y vuelves a pasar por lo mismo, quizá desde el móvil en un tren.
Así que las preguntas de verdad son: cómo iniciar sesión una vez, cómo mantener la sesión y qué hacer cuando no estás delante de un teclado.
Opción 1: inicia sesión en Claude Code por SSH pegando un código
Es el camino normal, y la documentación de autenticación de Anthropic lo describe para SSH y equipos sin interfaz gráfica.
ssh you@server
claudeEn la pantalla de inicio de sesión:
- Pulsa
cpara copiar la URL de inicio de sesión, o selecciónala. - Ábrela en un navegador del portátil o el móvil e inicia sesión.
- El navegador no llega al callback del servidor, así que muestra un código en lugar de redirigir.
- Pega ese código en el prompt
Paste code here if prompted.
Dónde se complica:
- El atajo de copiar copia al portapapeles del servidor, al que no llegas por SSH. Una issue de GitHub en el repositorio de Claude Code informa de que la URL se parte dentro de la interfaz de inicio de sesión a pantalla completa y tampoco se puede seleccionar. Si te pasa, usa la opción 2.
- tmux y las terminales estrechas pueden partir la URL en varias líneas. Ensancha la ventana o amplía el panel antes de copiar.
- Las credenciales caducan. Cuando lo hacen, la siguiente sesión en ese equipo vuelve a pararse en la pantalla de inicio de sesión y toca repetir esto por SSH.
Opción 2: inicia sesión en Claude Code con un claude setup-token de larga duración
Para un equipo delante del que no se sienta nadie, Anthropic documenta un token OAuth de un año. Lo creas una vez en un ordenador con navegador:
# on your laptop
claude setup-tokenAbre el mismo inicio de sesión en el navegador que /login, imprime el token y no lo guarda en ningún sitio. Cópialo y, en el servidor:
# on the server, in the environment the agent runs in
export CLAUDE_CODE_OAUTH_TOKEN=your-token
claudeLo que dice la documentación de Anthropic sobre este token:
- Requiere una suscripción Pro, Max, Team o Enterprise.
- Solo puede hacer peticiones al modelo, así que no puede iniciar sesiones de Claude Code Remote Control ni obtener conectores de claude.ai. Los servidores MCP que configures en local siguen funcionando.
- El modo
--bareno lo lee. Si un script pasa--bare, usa una clave de API.
Dos notas prácticas:
- Guarda el token en un sitio que solo pueda leer tu usuario, como un archivo
0600que cargues, y no en un perfil de shell de un equipo compartido. Cualquier cosa que pueda leerlo puede gastar tu suscripción. - Defínelo donde arranca realmente el agente. Si Claude Code lo lanza un servicio en segundo plano, una variable exportada en tu shell interactiva no estará allí. Es un motivo habitual de que un token "funcione por SSH pero no desde el servicio".
Opción 3: usa una clave de API de Anthropic en el servidor
export ANTHROPIC_API_KEY=sk-ant-...
claudeClaude Code te pide una vez que apruebes la clave y después se salta el navegador. Se factura por token a través de Claude Console, aparte de una suscripción Pro o Max. Encaja con scripts y tareas programadas.
Mantén la sesión de Claude Code para las sesiones que abres desde el móvil
Las opciones 1 a 3 resuelven el primer inicio de sesión. Lo difícil es el segundo: una sesión que abres desde el móvil un mes después, atascada en un inicio de sesión caducado en un equipo al que no estás conectado por SSH.
Si quieres iniciar y guiar sesiones de Claude Code en el servidor desde el móvil, y ver cuándo una está bloqueada en el inicio de sesión sin abrir una app de SSH, Happier es una app de código abierto para ejecutar y orquestar Claude Code, Codex y otros agentes entre dispositivos, desde el móvil, el escritorio o la web.
El agente se ejecuta en tu propio ordenador o servidor, y la app del móvil, de escritorio o web se conecta a él. Cómo usar Happier desde el móvil explica la configuración. Está en GitHub, puedes descargarlo aquí y hay un Discord.
Así funciona la parte del inicio de sesión.
1) Empareja el servidor con Happier escaneando un código QR
En el servidor:
curl -fsSL https://happier.dev/install | bash
happier auth login --method mobileLa terminal muestra un código QR. Escanéalo con la app de Happier en el móvil y apruébalo. Si estás en un portátil que ya tiene la CLI de Happier, happier auth pair-remote --ssh you@server hace el emparejamiento por SSH.
2) Inicia sesión en Claude Code en el servidor desde la app de Happier
En la app, abre Configuración (Settings) → IA y agentes (AI & Agents) → Configuración del proveedor de IA (AI backends) → Claude, elige el servidor (una máquina en Happier) en la barra de contexto y mira la sección Autenticación (Authentication). Muestra si Claude Code tiene la sesión iniciada en ese ordenador y cómo.
Iniciar sesión (Log in) o Volver a autenticar (Reauthenticate) abre una Terminal de inicio de sesión del proveedor (Provider login terminal) que ejecuta Claude Code en el servidor y envía /login por ti. Abres la URL en el móvil, inicias sesión y pegas el código en esa terminal. Es la opción 1, sin la app de SSH. Comprobar ahora (Check now) actualiza el estado después de iniciar sesión de otra forma.
3) Guarda el setup-token de Claude en Happier una vez
Si prefieres usar un setup-token, Happier puede guardarlo como servicio conectado:
claude setup-token # on a computer with a browser
happier connect claude # paste the token when askedhappier connect claude pide un setup-token por defecto. El token se guarda cifrado en tu cuenta de Happier y solo se descifra en tus propios dispositivos. Aparece en Configuración (Settings) → Servicios conectados (Connected services), y puedes elegirlo al iniciar una sesión de Claude en cualquiera de tus ordenadores. Una clave de API de Anthropic funciona igual con happier connect claude --api-key.
El límite, dicho claramente: el servidor tiene que estar encendido y accesible. Happier no mantiene con sesión iniciada un equipo apagado, y las normas del proveedor sobre el token siguen aplicándose.
Solución de problemas
Al pulsar c en el inicio de sesión de Claude Code no se copia nada que pueda pegar
La copia va al servidor, no a tu portátil. Selecciona la URL con la selección de tu terminal, ensancha la ventana para que no se parta o usa claude setup-token en otro ordenador.
El navegador no llega a localhost después del inicio de sesión de Claude
Es el callback intentando llegar a tu portátil. Vuelve a la pestaña del navegador que muestra un código, o reinicia el inicio de sesión y busca el paso del código. Por SSH, el código es el camino previsto.
Claude Code funciona por SSH, pero las sesiones que inicia un servicio me piden iniciar sesión
El servicio no ve el entorno de tu shell interactiva. Define CLAUDE_CODE_OAUTH_TOKEN en el entorno del servicio, o guarda el token como servicio conectado para que la sesión lo reciba al arrancar.
Claude Code Remote Control no arranca con un setup-token
La documentación de Anthropic dice que el setup-token solo puede hacer peticiones al modelo, así que Remote Control necesita el inicio de sesión normal de claude.ai de la opción 1.
Preguntas frecuentes
¿Puedo iniciar sesión en Claude Code sin ningún navegador?
Necesitas un navegador en algún sitio, una vez. Puede ser el del portátil o el del móvil. claude setup-token y el inicio de sesión por código usan un navegador en otro dispositivo. Solo una clave de API se salta el navegador por completo.
¿Cuánto dura el setup-token?
Un año, según la documentación de Anthropic. Se imprime una vez y no se guarda en ningún sitio, así que guárdalo antes de cerrar la terminal.
¿Necesito Claude Pro o Max para esto?
Para el inicio de sesión por código y el setup-token necesitas una suscripción de Claude (el setup-token requiere Pro, Max, Team o Enterprise). Una clave de API no necesita suscripción y se factura a través de la Console.
¿Puedo copiar ~/.claude del portátil al servidor?
Hay quien lo hace, pero no es un método de inicio de sesión documentado, y las credenciales copiadas pueden dejar de funcionar cuando el proveedor las rota. El setup-token es la forma documentada de reutilizar un inicio de sesión en otro ordenador.
¿Funciona igual en una Raspberry Pi o un VPS?
Sí. Los pasos no dependen del hardware, solo de que el equipo no tenga navegador.
Guías relacionadas
- Cómo iniciar sesión en Codex en un servidor sin interfaz gráfica
- Cómo ejecutar Claude Code, Codex y OpenCode en un servidor de casa y revisar el progreso desde el navegador del móvil
- Mantén Claude Code, Codex y OpenCode en marcha cuando el portátil entra en reposo (cortes de Wi-Fi, cerrar la tapa, reanudar)
- Cómo usar Claude Code con --dangerously-skip-permissions de forma segura
- Happier vs. Claude Code Remote Control
- ¿Claude Code es gratis? Cuánto cuesta en 2026 y las formas de pagarlo