En la publicación anterior revisamos el uso básico del comando ssh y sus opciones útiles. Sin embargo, introducir manualmente cada dirección IP, nombre de usuario y número de puerto resulta tedioso.
En estos casos, el archivo de configuración SSH es la solución perfecta. Almacena la información de los servidores que usas con frecuencia y te permite conectarte con un simple alias, como si fueran marcadores.
Yo mismo, en mis días de "total novato", solía registrar los comandos que usaba en .bashrc como alias. Cuando descubrí el archivo config, me di cuenta de lo ingenuo que era.

¿Qué es el archivo de configuración SSH?
El archivo de configuración SSH es un fichero que permite personalizar el comportamiento del cliente SSH. Al guardar la información de conexión (usuario, puerto, clave, etc.) para cada host, puedes conectarte más tarde usando solo un alias.
- Ubicación: Normalmente se encuentra en
~/.ssh/config. Si acabas de instalar SSH, es posible que no exista; en ese caso, créalo. - Creación del archivo: Si no existe
~/.ssh/config, créalo y asegúrate de que los permisos sean600.
touch ~/.ssh/config
chmod 600 ~/.ssh/config # ¡Los permisos son obligatorios por seguridad!
Reglas para escribir el archivo de configuración
El archivo es un texto plano. Cada host se define con la palabra clave Host y se escribe en bloque.
Estructura básica
Host [alias]
[opción1] [valor1]
[opción2] [valor2]
...
Host [alias]: Indica el inicio del bloque y define el alias que usarás. En lugar de un alias, también puedes colocar la dirección real (IP o dominio) y usar comodines (*,?).- Indentación: Las opciones bajo
Hostdeben estar indentadas. Puedes usar espacios o tabulaciones, pero mantén la consistencia. - Opciones: Se listan las opciones SSH que se aplicarán al usar ese alias. Son equivalentes a los parámetros
ssh -opción.
Opciones más usadas
| Opción | Descripción | Valor de ejemplo |
|---|---|---|
HostName |
Dirección IP o dominio del servidor real | 192.168.1.100 o example.com |
User |
Nombre de usuario remoto | ubuntu, ec2-user, root |
Port |
Puerto SSH del servidor (22 por defecto) | 2222 |
IdentityFile |
Ruta al archivo de clave privada | ~/.ssh/id_ed25519_myserver |
ForwardAgent |
Habilita el forwarding de agente SSH | yes |
StrictHostKeyChecking |
¿Verificar estrictamente la clave del host? (yes recomendado) |
no (para pruebas iniciales) |
PortForwarding |
Permitir port forwarding | yes |
LocalForward |
Configuración de port forwarding local (-L) |
8080 localhost:80 |
ServerAliveInterval |
Intervalo en segundos para comprobar que el servidor está vivo | 60 |
ServerAliveCountMax |
Número de intentos antes de desconectar | 3 |
Ejemplo de configuración SSH
Añadamos configuraciones para algunos servidores que usamos con frecuencia.
# Primer servidor: web server (alias: webserver)
Host webserver
HostName 192.168.1.100
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_webserver # clave exclusiva del web server
# Segundo servidor: dev server (alias: devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev # clave RSA
# Forward local port 8000 to remote port 80
LocalForward 8000 localhost:80
# Tercer servidor: todos los EC2 de AWS (alias: aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
# Mantener la conexión viva
ServerAliveInterval 60
ServerAliveCountMax 3
# Configuración general para la subred 10.0.0.* (alias: 10.0.0.*)
Host 10.0.0.*
User admin
Port 22
Explicación:
webserver: Conecta a192.168.1.100comoubuntuusando el puerto2222y la claveid_ed25519_webserver.devbox: Conecta adev.example.comcomodevelopercon la claveid_rsa_devy reenvía el puerto local8000al remoto80.aws-*: Aplica a cualquier alias que comience conaws-. Por ejemplo,ssh aws-produsaráec2-usery la claveaws_ec2_key.pem.10.0.0.*: Para cualquier IP en la subred10.0.0.x, usaadminy el puerto22.
En la práctica, no suelo usar comodines extensos; prefiero una configuración 1:1 por servidor. Cuando necesito acceder a un mismo servidor con distintas configuraciones, añado un alias adicional y elijo el que necesite, como si seleccionara un plato en un menú.

Cómo usar el archivo de configuración
Con la configuración guardada, conectarse se vuelve mucho más sencillo. Veamos cómo.
1. Conexión por alias
Ejecuta el comando SSH usando solo el alias.
- Usando el alias
webserver:
ssh webserver
Enter passphrase for key '/home/youruser/.ssh/id_ed25519_webserver':
ubuntu@webserver-ip:~ $
Este comando es equivalente a
ssh -p 2222 -i ~/.ssh/id_ed25519_webserver ubuntu@192.168.1.100.
- Usando el alias
devbox:
ssh devbox
Enter passphrase for key '/home/youruser/.ssh/id_rsa_dev':
developer@devbox-domain:~ $
(Si también conectas el puerto local 8000, se redirigirá al puerto 80 de
dev.example.com).
Ventajas de usar el archivo de configuración
- Conveniencia: Reemplaza comandos largos por alias cortos, reduciendo errores y ahorrando tiempo.
- Productividad: Accede rápidamente a los servidores que usas con frecuencia.
- Mantenimiento sencillo: Todos los ajustes de conexión están centralizados; si cambia la IP de un servidor, solo actualizas el archivo.
- Seguridad: Evita exponer claves o contraseñas en el historial de comandos.
Conclusión
El archivo de configuración SSH es una herramienta esencial para cualquier desarrollador o administrador que utilice SSH. Con él, tu experiencia de conexión será más fluida y eficiente. Abre ~/.ssh/config, crea tus alias y disfruta de una gestión de conexiones más ordenada.
Si te interesa profundizar, busca en la barra lateral los artículos relacionados con ssh.
¡No dudes en dejar tus preguntas en los comentarios!