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 fuera un favorito.
Yo mismo, cuando era un "total novato" y desconocía la existencia del archivo de configuración, solía registrar los comandos que usaba con frecuencia en .bashrc como alias. Cuando aprendí a crear 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 la carpeta
.sshdentro del directorio home del usuario, llamadoconfig. 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 sean 600.
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 del alias, también puedes colocar la dirección real (IP o dominio) y usar comodines (*,?).- Indentación: Los parámetros bajo
Hostdeben estar indentados. Puedes usar espacios o tabulaciones, pero mantén la consistencia. - Opciones: Bajo
Hostse listan las opciones SSH que se aplicarán al usar ese alias. Son equivalentes a los parámetrosssh -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 del agente SSH | yes |
StrictHostKeyChecking |
¿Verificar estrictamente la clave del host? (yes recomendado) |
no (para pruebas iniciales) |
PortForwarding |
Permitir port forwarding | yes |
LocalForward |
Configura 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á automáticamente el usuario y la clave definidos.10.0.0.*: Para cualquier IP en la subred10.0.0.x, se usa el usuarioadminy 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 un ejemplo.
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 del servidor
dev.example.com).
Ventajas de usar el archivo de configuración
- Conveniencia: Reemplaza comandos largos y complejos por un alias corto, 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 que la ruta de la clave aparezca 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, puedes hacer que tus conexiones sean más rápidas, seguras y fáciles de gestionar. Abre ~/.ssh/config, crea tus alias y disfruta de una experiencia SSH más fluida.
¡Explora también otros posts relacionados con SSH! Busca "ssh" en la barra lateral derecha para encontrar más artículos.
Si tienes dudas, deja un comentario y con gusto te ayudaré.