termal.in

← Blog

Cómo conectar Claude Code a tu servidor por SSH — guía práctica

· Equipo de Termalin También disponible en inglés →

Claude Code se mueve con soltura dentro de un repositorio. Pero en cuanto la tarea se sale del repo — averiguar por qué no arranca el servicio, liberar espacio en disco, arreglar la configuración de nginx en el servidor de verdad — necesita SSH, y la mayoría lo resuelve pegando una clave privada en algún rincón del entorno del agente. Ya escribimos sobre por qué ese es el movimiento que no tiene vuelta atrás (en inglés); esta es la versión práctica. Veinte minutos, un VPS, y ninguna clave sale de tu lado.

Qué necesitas

  • Termalin — la aplicación de escritorio; el plan Free es suficiente. Es un cliente SSH con un servidor MCP integrado, y ese servidor es con el que va a hablar Claude Code. Si el concepto te resulta nuevo, la página de Claude Code por SSH lo resume.
  • Claude Code en la misma máquina.
  • Un host guardado en Termalin — para la primera vez, elige algo de bajo riesgo: staging, un VPS de juguete, la máquina que solo corre tu lector de RSS.

Paso 1 — activa el acceso del agente

El acceso de agentes viene desactivado por defecto. En Termalin, abre Settings → MCP, actívalo y marca los hosts a los que el agente puede llegar. Fuera de esa lista no existe nada para el agente: añadir un host es una decisión que tomas tú en la aplicación, no algo que el agente pueda conseguir a base de insistir.

Por debajo pasan dos cosas. Termalin escribe un inventario de hosts para el servidor MCP con entradas de autenticación solo-agente — ni contraseñas ni claves acaban en ese archivo. Y la autenticación queda en manos del custodio de claves de la app: desbloqueas tus claves una vez y Termalin firma en nombre del agente. No existe ningún archivo de clave que el agente pueda leer, así que no hay nada que pueda filtrar.

Paso 2 — registra el servidor en Claude Code

Un solo comando:

claude mcp add termalin -- <ruta>/termalin-mcp

Esa es toda la integración. Reinicia Claude Code y detecta las herramientas: hosts_list, ssh_exec, sesiones persistentes (session_open, session_exec), lecturas y escrituras por SFTP y — si tú lo permites — herramientas que manejan la propia ventana de Termalin en vivo.

Paso 3 — dale una tarea de verdad

No empieces con un comando de demostración; empieza con algo que harías tú. Por ejemplo:

El uso de disco en staging-1 no deja de subir. Averigua qué se está comiendo el espacio, limpia lo que sea claramente seguro de borrar y cuéntame qué hiciste.

Observa lo que pasa en Claude Code: llama a hosts_list, ve staging-1, abre una sesión y se pone a trabajar — df -h, después du por las rutas sospechosas, y luego un vistazo a lo que encuentre (en nuestras pruebas casi siempre son logs que nadie rotó o un cementerio de imágenes de Docker). Limpia, verifica con otro df -h y te cuenta el resultado.

Lo que hace cómodo todo esto es que nada ocurre a escondidas. Cada sesión que abre el agente aparece en Termalin como una pestaña de terminal en vivo, y el watch grid muestra todas las sesiones abiertas lado a lado, con los mosaicos que conduce el agente brillando.

No lees un resumen después de los hechos: ves aterrizar los comandos mientras corren, y puedes intervenir en cualquier momento.

Dónde están los límites

Algunos valores por defecto que conviene conocer antes de apuntarlo a algo que te importe:

  • Tus claves nunca llegan al agente — el custodio firma; el agente pide. Revocar el acceso es un interruptor en Settings, no una rotación de claves por toda tu flota.
  • El alcance del agente es la lista que definiste en el paso 1, y nada más.
  • Escribir en tu sesión es aparte. Por defecto el agente abre sus propias sesiones. Dejar que actúe dentro de una sesión que ya tienes abierta (con Pro) tiene su propio interruptor de consentimiento — nunca se suma en silencio.
  • Las grabaciones marcan la actividad del agente. Las grabaciones de sesión capturan solo la salida — nunca lo que tecleas — y cada comando del agente queda etiquetado como suyo, con el dispositivo y la IP de origen en el registro de auditoría. A las 2 de la mañana puedes distinguir «esto lo hizo él» de «esto lo hice yo».

¿Sin escritorio a mano? Usa el endpoint alojado

Si el agente corre donde tu escritorio no está — CI, un sandbox en la nube — no vas a llevar la app con él. Crea una clave API en el panel web y apunta el agente al endpoint MCP alojado:

{
  "mcpServers": {
    "termalin": {
      "url": "https://termal.in/api/v1/mcp",
      "headers": { "Authorization": "Bearer tk_live_…" }
    }
  }
}

El endpoint alojado solo llega a los servidores que hayas inscrito con el agente de túnel, y cada ejecución se autentica con un certificado de corta duración — la misma idea del custodio, sin credencial fija en ninguna parte. Las claves se limitan a servidores concretos, caducan en el plazo que elijas (30, 90 o 365 días) y mueren al instante cuando las revocas. Las herramientas de archivos son deliberadamente modestas ahí: archivos de texto de hasta 512 KB — territorio de editar configs, no un canal de datos.

El hábito que lo consolida

Trata la primera semana como el onboarding de un compañero nuevo que teclea rapidísimo. Mantén el watch grid abierto. Dale tareas con un estado final claro — «haz que pase el health check», «renueva el certificado» — y lee cómo llega hasta ahí. Vas a aprender rápido dónde es cuidadoso y dónde necesita la correa más corta, y podrás ampliar la lista de hosts permitidos de uno en uno, empezando por los aburridos.

La asimetría es el punto: el agente consigue alcance real, y tú conservas lo único que no se puede recuperar.


El plan Free de Termalin es la aplicación de escritorio completa, y toda cuenta nueva empieza con 14 días de Pro — descárgala, o lee primero la referencia MCP (en inglés).

Pruébalo con un host.

Termalin es un cliente SSH rápido para ti — y para tus agentes.

Plan Free · 14 días de Pro · precios