Tras seis meses de desarrollo se dio a conocer la liberación de la nueva versión de OpenSSH 9.1, versión que se caracteriza por contener principalmente correcciones de errores, incluidas correcciones para varias vulnerabilidades potenciales causadas por problemas de memoria.
Para quienes desconocen aún de OpenSSH, les puedo decir que este es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando el protocolo SSH. Fue creado como una alternativa libre y abierta al programa Secure Shell, que es software propietario.
Principales novedades de OpenSSH 9.1
En esta nueva versión que se presenta de OpenSSH 9.1, tal y como se mencionó al inicio, la versión es correctiva y de los problemas que fueron abordados en este lanzamiento se menciona por ejemplo la solución al desbordamiento de byte único en el código de procesamiento de banner SSH en la utilidad ssh-keyscan.
Otro de los problemas que se abordó en esta nueva versión de OpenSSH 9.1 fue la doble llamada a la función free() en caso de error al calcular hashes para archivos en el código para crear y verificar firmas digitales en la utilidad ssh-keygen.
Ademas de ello, tambien se menciona que el proyecto portátil OpenSSH ahora firma compromisos y etiquetas de liberación utilizando el soporte de firma SSH reciente de git. Las claves de firma de la lista de desarrolladores se incluyen en el repositorio como .git_allowed_signers y está firmado con la clave PGP que todavía se usa para firmar
liberar artefactos, por lo que es posible que haya un problema de incompatibilidad.
En cuanto a los cambios que se presenten, se menciona que las directivas SetEnv en los archivos de configuración ssh_config y sshd_config ahora aplican el valor de la primera aparición de una variable de entorno si se define varias veces en la configuración (antes de eso, se usaba la última aparición).
Al llamar a la utilidad ssh-keygen con el indicador «-A» (que genera todos los tipos de claves de host admitidas de forma predeterminada), la generación de claves DSA, que no se han utilizado de forma predeterminada durante varios años, está deshabilitada.
sftp-server y sftp implementan la extensión «users-groups-by-id@openssh.com» para permitir que el cliente solicite los nombres de usuarios y grupos correspondientes a un conjunto determinado de identificadores numéricos (uid y gid). En sftp, esta extensión se usa para mostrar nombres al enumerar el contenido de un directorio.
sftp-server implementa la extensión «home-directory» para expandir las rutas ~/ y ~user/, una alternativa a la extensión «expand-path@openssh.com» propuesta anteriormente para los mismos propósitos (la extensión «home-directory» fue propuesto para la estandarización y ya ha sido respaldado por algunos clientes).
En sftp, se permiten argumentos adicionales en la opción «-D» (por ejemplo, «/usr/libexec/sftp-server -el debug3»), mientras que ssh-keygen permite el uso de «-U» (usando ssh-agent) junto con las operaciones de «-Y sign» para determinar que las claves privadas se colocan en ssh-agent.
De los demás cambios que se realizaron en esta nueva versión:
- Se agregó la capacidad de ssh-keygen y sshd para especificar la hora UTC al determinar los intervalos de validez del certificado y la clave, además de la hora del sistema.
- Doble llamada a free() cuando se manejan errores en la utilidad ssh-keysign.
- La directiva RequiredRSAsize se agregó a ssh y sshd, lo que le permite definir el tamaño mínimo permitido de las claves RSA. En sshd, las claves más pequeñas que esta serán ignoradas, mientras que en ssh, terminarán la conexión.
- La edición portátil de OpenSSH se ha convertido para usar claves SSH para firmar digitalmente compromisos y etiquetas en Git.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
¿Como instalar OpenSSH 9.1 en Linux?
Para quienes estén interesados en poder instalar esta nueva versión de OpenSSH en sus sistemas, de momento podrán hacerlo descargando el código fuente de este y realizando la compilación en sus equipos.
Esto es debido a que la nueva versión aún no se ha incluido dentro de los repositorios de las principales distribuciones de Linux. Para obtener el código fuente, puedes hacer desde el siguiente enlace.
Hecha la descarga, ahora vamos a descomprimir el paquete con el siguiente comando:
tar -xvf openssh-9.1.tar.gz
Entramos al directorio creado:
cd openssh-9.1
Y podremos realizar la compilación con los siguientes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh make make install