Aprendiendo SSH: Opciones y parámetros del archivo SSH Config
En nuestra última entrega sobre Aprendiendo SSH abordamos prácticamente todas las opciones del comando SSH y los parámetros del programa OpenSSH, que se encuentran disponibles a la hora de ejecutar el comando SSH en el terminal. Una de ellas fue «-o option», la cual explicamos que permite emplear opciones especificadas en el archivo de configuración de OpenSSH, es decir, el archivo «SSH Config» (ssh_config).
Por tal razón, hoy explicaremos brevemente algunas de estas opciones especificadas en el archivo de configuración de OpenSSH, para darnos una pequeña y útil idea de lo que podemos hacer a la hora de ejecutar una orden de comando del tipo «ssh -o option …», o de simplemente, configurar nuestro servidor SSH local (cliente).
Y como de costumbre, antes de entrar de lleno en el tema de hoy sobre las opciones y parámetros disponibles en el archivo «SSH Config» (ssh_config) de OpenSSH, dejaremos para aquellos interesados los siguientes enlaces a algunas anteriores publicaciones relacionadas:
Opciones y parámetros del archivo SSH Config (ssh_config)
¿Qué es el archivo SSH Config (ssh_config) para OpenSSH?
OpenSSH posee 2 archivos de configuración. Uno llamado ssh_config para la configuración del paquete cliente y otro llamado sshd_config para el paquete servidor, ambos ubicados en la ruta o directorio siguiente: /etc/ssh.
Por lo tanto, al trabajar en el archivo de configuración «SSH Config» (ssh_config) asumimos que, estaremos trabajando sobre un ordenador que funcionará como una estación de trabajo del tipo cliente, es decir, que realizará conexiones SSH hacia uno o más equipos Servidores con SSH.
Listado de opciones y parámetros existentes
A continuación estas son algunas de las opciones o parámetros existentes dentro del archivo de configuración «SSH Config» (ssh_config), muchas de las cuales pueden ser usadas dentro de una orden de comando del tipo «ssh -o option …».
Host / Match
Esta opción o parámetro indica dentro del archivo de configuración SSH cliente (ssh_config) que se restringen las siguientes declaraciones (hasta la siguiente opción o parámetro Host o Match indicados), para que sean solo para aquellos hosts que coincidan con uno de los patrones dados después de la palabra clave.
Es decir, que esta opción actúa como un divisor de sección dentro del archivo, al igual que la opción Match. Por lo tanto, ambas pueden repetirse varias veces en el archivo de configuración. Y sus valores, pueden ser una lista de patrones, que determinan cuáles son las opciones subsiguientes a aplicar a las conexiones realizadas a los hosts en cuestión.
El valor * significa “todos los hosts”, mientras que en Match el valor «all» hace lo mismo. Y, si se proporciona más de un patrón, deben estar separados por espacios en blanco. Una entrada de patrón se puede negar prefijándola con un signo de exclamación (‘!’), para que, dichas coincidencias negadas sean útiles al proporcionar excepciones para las coincidencias con comodines.
AddressFamily
Permite especificar que tipo (familia) de direcciones usar al conectarse. Los argumentos válidos son: any (predeterminado), inet (usar solo IPv4) o inet6 (usar solo IPv6).
BatchMode
Permite desactivar en la interacción del usuario, las solicitudes de contraseña y las solicitudes de confirmación de la clave del host, si se establece el argumento o valor «yes». Esta opción es útil en secuencias de comandos y otros trabajos por lotes donde no hay ningún usuario presente para interactuar con SSH. El argumento debe ser «yes» o «no», donde «no» es el valor predeterminado.
Este parámetro permite especificar si SSH debe terminar la conexión, si no puede configurar todos los reenvíos de puertos dinámicos, de túnel, locales y remotos solicitados.
ForwardAgent
Este parámetro permite especificar si la conexión con el agente de autenticación (si lo hay) se reenviará a la máquina remota. El argumento puede ser «yes», ya que, «no», es el valor predeterminado, además, el reenvío de agentes debe habilitarse con precaución. Puesto que, los usuarios con la capacidad de eludir los permisos de archivo en el host remoto pueden acceder al agente local a través de la conexión reenviada.
ForwardX11
Aquí se permite específica si las conexiones X11 se redirigirán automáticamente a través del canal seguro y el conjunto DISPLAY. El argumento puede ser «yes», ya que, «no», es el valor predeterminado.
ForwardX11Trusted
Aquí se establece en sí, cuáles serán los clientes X11 remotos que tendrán acceso total a la pantalla X11 original. Es decir, Si esta opción se establece en «yes», los clientes X11 remotos tendrán acceso total a la pantalla X11 original. Mientras que, si se establece en no (valor predeterminado), los clientes X11 remotos se considerarán no confiables y se evitará que roben o manipulen datos pertenecientes a clientes X11 confiables.
HashKnownHosts
Se utiliza para indicarle a SSH que debe aplicar hash a los nombres y direcciones de host cuando se agregan a ~/.ssh/known_hosts. De manera tal, de que estos nombres cifrados pueden ser utilizados normalmente por ssh y sshd, pero sin revelar información de identificación, en caso de que se divulgue el contenido del archivo.
GSSAPIAutentication
Se utiliza para especificar dentro de SSH, si se permite la autenticación de usuarios basada en GSSAPI. GSSAPI se usa normalmente para la autenticación Kerberos, por ejemplo, con Active Directory.
SendEnv
Sirve para especificar qué variables del entorno local deben enviarse al servidor. Para hacer funcionar esto de forma correcta, el servidor también debe admitirlo, además de estar configurado para aceptar estas variables de entorno. Las variables se especifican por nombre, que puede contener caracteres comodín. Además, varias de las variables de entorno pueden estar separadas por espacios en blanco o distribuidas en varias directivas de este tipo (SendEnv).
Más información
Y en esta cuarta entrega, para ampliar esta información, y estudiar todas y cada una de las opciones y parámetros disponibles dentro del archivo de configuración «SSH Config» (ssh_config), recomendamos explorar los siguientes enlaces: Archivo de configuración SSH para el cliente OpenSSH y Manuales oficiales de OpenSSH, en inglés. Y tal como, en las tres anteriores entregas, explorar los siguientes contenidos oficiales y confiables en línea sobre SSH y OpenSSH:
- Wiki Debian
- Manual del Administrador de Debian: Inicio de sesión remoto / SSH
- Manual de seguridad de Debian: Capítulo 5. Asegurando los servicios que se ejecutan en su sistema
Resumen
En resumen, esta nueva entrega sobre «Aprendiendo SSH» muy seguramente el contenido explicativo, será un genial complemento a las anteriores publicaciones relacionadas con OpenSSH. De forma tal, de realizar mejores y más complejas conexiones remotas. Y ejecutar configuraciones más seguras y confiables, empleando dicho protocolo de conexión remota y segura.
Si te ha gustado esta publicación, no dejes de comentarla y de compartirla con otros. Y recuerda, visitar nuestra «página de inicio» para explorar más noticias, además de unirte a nuestro canal oficial de Telegram de DesdeLinux, o este grupo para más información sobre el tema de hoy.