Volver a herramientas
¿Qué es SSH Config?
El archivo ~/.ssh/config permite configurar conexiones SSH de forma persistente
sin necesidad de escribir todos los parámetros en cada conexión.
- Alias: Usa nombres cortos para conectar (ej:
ssh mi-servidoren lugar dessh -p 22 [email protected]) - ProxyJump: Conecta a servidores internos a través de un servidor bastion/jump host
- Keep-alive: Mantén conexiones activas con
ServerAliveInterval - Seguridad: Usa
StrictHostKeyCheckingpara verificar host keys
Ejemplo: Conexión con Jump Host
Para conectar a un servidor interno a través de un servidor bastion:
- Configura el servidor bastion como un host separado en
~/.ssh/config - En el servidor interno, usa
ProxyJump bastionpara indicar que la conexión debe pasar por el bastion
Ahora puedes conectar con: ssh servidor-interno
Preguntas frecuentes
¿Cómo configurar ~/.ssh/config para conectar por SSH a múltiples servidores?
Edita o crea `~/.ssh/config` con bloques Host por servidor. Cada bloque define alias (`Host`), dirección (`HostName`), usuario (`User`), puerto (`Port`) y clave SSH (`IdentityFile`). Ejemplo: `Host web-prod HostName 203.0.113.10 User deploy Port 22 IdentityFile ~/.ssh/id_ed25519`. Con esto escribes `ssh web-prod` en lugar del comando completo. El archivo debe tener permisos 600 (`chmod 600 ~/.ssh/config`) o SSH lo ignorará por seguridad.
¿Qué es un Jump Host o ProxyJump en SSH y cómo configurarlo?
Un Jump Host (bastión) es un servidor intermedio para acceder a servidores internos que no tienen IP pública. En `~/.ssh/config`, usa `ProxyJump usuario@bastion`. Ejemplo: `Host interno HostName 10.0.1.50 User admin ProxyJump bastion.empresa.com`. Al hacer `ssh interno`, SSH se conecta automáticamente al bastión y desde ahí salta al destino. Esto evita exponer servidores internos directamente a Internet y centraliza la autenticación en el punto de entrada.
¿Cómo configurar clave SSH por servidor en ~/.ssh/config?
Usa la directiva `IdentityFile` dentro de cada bloque Host para asignar una clave SSH específica a cada servidor. Ejemplo: `Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_github` y `Host servidor HostName 192.168.1.100 User root IdentityFile ~/.ssh/id_rsa_empresa`. Esto es esencial cuando gestionas múltiples proveedores o entornos con diferentes pares de claves, evitando errores de autenticación por usar la clave incorrecta.
¿Cómo mantener alive las conexiones SSH para que no se congelen?
Para evitar que las conexiones SSH se congelen por inactividad, añade en `~/.ssh/config`: `Host * ServerAliveInterval 60 ServerAliveCountMax 3`. La directiva `ServerAliveInterval` envía un paquete keepalive cada 60 segundos desde el cliente al servidor. `ServerAliveCountMax 3` define cuántos keepalives pueden fallar antes de cerrar la conexión. Si el servidor también tiene `ClientAliveInterval` configurado, la conexión es bidireccionalmente resistente a timeouts de NAT y cortafuegos.
Herramientas relacionadas
Conversor Bash ↔ Batch
Convierte scripts entre Bash (Linux) y Batch (Windows).
Calculadora de Downtime
Calcula el porcentaje de disponibilidad basado en tiempo de inactividad
Calculadora de CRON
Convierte expresiones CRON en lenguaje natural y viceversa. Ideal para tareas programadas.
Simulador de Despliegue
Visualiza estrategias: Rolling Update, Blue-Green y Canary