Configurar SSH con el archivo config

última modificación:

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