Cuando trabajamos con varios servidores, recordar el usuario, el puerto y la clave de cada
uno se complica. El archivo ~/.ssh/config nos permite definir alias para cada
servidor y evitar tener que escribir todos los parámetros en cada conexión.
Un ejemplo de archivo ~/.ssh/config:
Host mi-servidor
HostName example.com
User usuario
Port 2222
IdentityFile ~/.ssh/mi_clave
Host otro-servidor
HostName 192.168.1.10
User root
Con esta configuración, en lugar de escribir:
ssh -p 2222 -i ~/.ssh/mi_clave usuario@example.com
Basta con:
ssh mi-servidor
El archivo acepta opciones globales (que afectan a todas las conexiones) y opciones por servidor. Por ejemplo, para desactivar la comprobación estricta de la clave del host en entornos de pruebas:
Host *
StrictHostKeyChecking no
Aunque para producción conviene dejarlo activado (el valor por defecto).
Los alias definidos en ~/.ssh/config también funcionan con scp y con
rsync:
rsync -avz /home/usuario/ mi-servidor:/home/usuario/backup/
Los permisos del archivo deben ser 600. SSH rechaza leer el archivo si otros usuarios pueden acceder a él, igual que ocurre con la clave privada:
chmod 600 ~/.ssh/config