Skip to main content

Fichero de configuración para SSH

Os vamos a contar cómo crear y configurar un archivo de configuración OpenSSH para crear accesos directos a servidores a los que accedas con frecuencia en sistemas operativos Linux o Unix.

Puedes configurar tu cliente ssh OpenSSH utilizando varios archivos de la siguiente manera para ahorrar tiempo y escribir las opciones de línea de comandos del cliente ssh utilizadas con frecuencia, como puerto, usuario, nombre de host, archivo de identidad y mucho más para que sea más fácil acceder desde Linux/macOS o Unix.

Para ello crearemos un archivo en la carpeta .ssh llamado config

vi ~/.ssh/config

Si queremos que sea accesible para todos los usuarios del sistema lo editaremos en la carpeta /etc/ssh/ssh_config (no confundir con el sshd_config)

Tienes que introducir un parámetro por línea y pueden estar separados por espacios o signos =

Para introducir comentarios puedes usar la # esas líneas se ignoran

Ejemplos

Host tecno01
     HostName hosta26b29-02.tecnocratica.net
     User eduardo
     Port 22
 

Ahora podrás acceder tecleando simplemente ssh tecno01

En este caso vamos a usar un archivo .key diferente.

Host proxmox01
     HostName 192.168.1.100
     User root
     IdentityFile ~/.ssh/proxmox.key

Parámetros posibles

Host: Define para qué host o hosts se aplica la sección de configuración. La sección termina con una nueva sección de Host o al final del archivo.

HostName: especifica el nombre de host real para iniciar sesión. También se permiten direcciones IP numéricas.

User: Define el nombre de usuario para la conexión SSH.

IdentityFile: especifica un archivo desde el cual se lee la identidad de autenticación DSA, ECDSA o DSA del usuario. El valor predeterminado es ~/.ssh/identity para la versión 1 del protocolo y ~/.ssh/id_dsa, ~/.ssh/id_ecdsa y ~/.ssh/id_rsa para la versión 2 del protocolo. La opción IdentityFile en la configuración SSH o en la CLI se refiere al archivo de clave privada, que debe mantenerse confidencial.

Protocol: especifica las versiones de protocolo que ssh debe admitir en orden de preferencia. Los valores posibles son 1 y 2.

Puerto: especifica el número de puerto para conectarse en el host remoto.

Cipher: Cipher es un parámetro de la versión 1 del protocolo para indicar el tipo de cifrado para cifrar sesiones. Los tipos admitidos son Blowfish, des y 3des (predeterminado).

Ciphers: El parámetro Ciphers indica el tipo de cifrado para cifrar sesiones en la versión 2 del protocolo. Los cifrados disponibles y los valores predeterminados son:

aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, 
aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbc, arcfour

HostKeyAlgorithms: El parámetro HostKeyAlgorithms establece el orden de preferencia para los algoritmos de clave de host en la versión 2 del protocolo. El orden predeterminado es ssh-rsa,ssh-dss.

Conectarse a equipos con SSH antiguos

Una de las principales ventajas de este archivo de configuración es la posibilidad de conectarse de forma fácil a equipos con versiones de RSA o protocolos SSH obsoletos

Ejemplos

Host switch-viejo
        Hostname 192.168.3.14
        user admin
        HostKeyAlgorithms ssh-rsa
        KexAlgorithms diffie-hellman-group1-sha1
        port 22


Host otro-sw-viejo
        Hostname 192.168.37.254
        user admin
        HostKeyAlgorithms ssh-dss
        KexAlgorithms diffie-hellman-group1-sha1
        Ciphers +aes256-cbc
        port 22

 

Host otro-sw-viejo-mas
        Hostname 192.168.37.254
        user admin
		KexAlgorithms +diffie-hellman-group1-sha1
		Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc
		PubKeyAcceptedKeyTypes +ssh-rsa
        port 8122