¿Cómo configurar el cliente SSH en Linux?

En ocasiones, es posible que necesitemos acceder a varios sistemas remotos con diferentes direcciones IP/nombres de host, nombres de usuario, puertos no estándar con varias opciones de línea de comandos. Una forma es crear un alias bash para cada conexión remota. Pero tenemos una solución fácil y mucho mejor para este problema. OpenSSH permite crear un archivo de configuración por usuario para almacenar diferentes opciones de SSH para cada servidor remoto. En este artículo, veremos los conceptos básicos de la configuración del cliente SSH con algunos ejemplos.

Requisito

Sistema Linux o macOS con OpenSSH Client instalado.

Ubicación del archivo

El archivo de configuración del lado del cliente SSH se llama config y se almacena en el directorio .ssh en el directorio de inicio del usuario. De forma predeterminada, el archivo de configuración no estará presente y el usuario debe crearlo con el comando táctil . Este archivo debe ser legible y escribible solo por el usuario y otros no deben acceder a él.

Crear archivo de configuración

Sintaxis del archivo de configuración

El archivo de configuración SSH toma la siguiente sintaxis,

Host [Alias1]
    Option1 [value]
    Option2 [value]
    Option3 [value]
    
Host [Alias2]
    Option1 [value]
    Option2 [value]
    
Host [Alias3]
    Option1 [value]

SSH Client lee el archivo de configuración sección por sección. Si coincide más de un patrón, las opciones de la primera estrofa coincidente tienen prioridad. Por lo tanto, la declaración específica del host debe ser lo primero y la declaración genérica debe mantenerse en último lugar. 

SSH Client no se preocupa por la sangría, pero se recomienda para la legibilidad.

Hay una gran cantidad de opciones de ssh disponibles que se pueden encontrar escribiendo man ssh_config en la terminal de Linux o puede consultar el archivo /etc/ssh/ssh_config como referencia.

Ejemplo de archivo de configuración SSH

Cuando un usuario desea conectarse a un servidor remoto a través de ssh, debe mencionar el nombre de usuario remoto seguido de la dirección IP o el nombre de host y el puerto (se puede ignorar el puerto 22 predeterminado). Considere el siguiente ejemplo,

servidor de acceso

Ahora, podemos tener las siguientes líneas en el archivo ~/.ssh/config,

Configuración de muestra 

Si simplemente escribimos ssh server, el cliente ssh leerá el archivo de configuración y usará las opciones mencionadas para conectarse al servidor remoto.

Acceder al servidor a través de la configuración del cliente

Patrones de configuración SSH

La directiva de host mencionada en la sintaxis puede contener un patrón o una lista de patrones separados por espacios.

Host nancy server

Working Patterns
nancy, server        

Los patrones también pueden contener uno de los siguientes especificadores,

  • * – Coincide con cero o más caracteres.
Host nancy*
   
Working Patterns
nancy,nancy123,nancy-server,etc   
  • ? – coincide exactamente con un carácter.
Host nancy?
  
Working Patterns
nancy1, nancy2, nancy3, etc
  • ! – Cuando se usa al comienzo de un patrón, niega la coincidencia.
Host nan* !nancy
 
Working Patterns
nan-1, naneo, etc [nancy will not work]

Precedencia de configuración de SSH

Consideremos el siguiente ejemplo para comprender más sobre la precedencia en las opciones de ssh cuando se definen varios hosts,

Host nancy
   HostName 10.21.43.150
   Compression no

Host jancy
   HostName 10.2.33.58
   PermitLocalCommand no

Host trial
   HostName 10.2.33.57
   PermitLocalCommand yes
   
Host *cy !jancy
   User woot
   Port 22
   
Host *
   User root
   Port 22
   Compression yes
  • Cuando un usuario escribe ssh nancy, el cliente ssh aplica las opciones de la primera coincidencia, que es Host nancy. Luego busca el siguiente patrón coincidente, que es Host *cy !jancy. Luego, el siguiente patrón coincidente es Host *, aquí no se considera ninguna de las opciones, ya que se anularon en los patrones coincidentes anteriores. La lista completa de opciones son,
Host nancy
  HostName 10.21.43.150
  User woot
  Port 22
  Compression no

  • Cuando un usuario escribe ssh jancy, los patrones coincidentes son Host jancy y Host *. Las opciones utilizadas son,
Host jancy
  HostName 10.2.33.58
  Port 22
  User root
  Compression yes
  PermitLocalCommand no

  • Cuando el usuario escribe ssh trial, los patrones coincidentes son Host trial y Host *,
Host trial
   HostName 10.2.33.57
   PermitLocalCommand yes
   User root
   Port 22
   Compression yes

  • Para todas las demás conexiones remotas, el cliente ssh utilizará Host *cy !jancy y Host *.

Anular las opciones del archivo de configuración de SSH

El cliente SSH lee el archivo de configuración en el siguiente orden,

  • Las opciones se mencionan en la línea de comando.
  • Opciones mencionadas en el archivo ~/.ssh/config.
  • Opciones mencionadas en el archivo /etc/ssh/ssh_config.

Ahora, si el usuario quiere conectarse a amp150.arubathena.com pero con un usuario diferente, puede anularse en la línea de comando como se muestra a continuación:

 

Publicación traducida automáticamente

Artículo escrito por kani_26 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *