OpenSSH 8.7 llega con mejoras para SFTP y mas
Despues de cuatro meses de desarrollo se ha presentado el lanzamiento de la nueva versión de OpenSSH 8.7 en la cual se ha agregado un modo de transferencia de datos experimental a scp usando el protocolo SFTP en lugar del protocolo SCP/RCP usado tradicionalmente.
SFTP usa un método más predecible para manejar nombres y no usa el procesamiento de plantilla de shell glob en el lado del otro host, lo que plantea un problema de seguridad, además de que se ha propuesto el indicador «-s» para habilitar SFTP en scp, pero en el futuro está previsto cambiar a este protocolo de forma predeterminada.
Otro cambio que se destaca es en sftp-server que implementa extensiones SFTP para expandir las rutas ~/ y ~user/, que son necesarias para scp. La utilidad scp ha cambiado el comportamiento al copiar archivos entre dos hosts remotos, que ahora se realiza de forma predeterminada a través del host local intermedio. Este enfoque evita la transferencia de credenciales innecesarias al primer host y la triple interpretación de los nombres de archivo en el shell (en los lados del sistema de origen, destino y local), así como cuando se usa SFTP, le permite usar todos los métodos de autenticación cuando acceder a hosts remotos, y no solo a métodos no interactivos
Además, tanto ssh como sshd han movido tanto el cliente como el servidor para usar un analizador de archivos de configuración más estricto que usa reglas de shell para manejar comillas, espacios y caracteres de escape.
El nuevo analizador tampoco omite suposiciones pasadas, como omitir argumentos en las opciones (por ejemplo, ahora no puede dejar la directiva DenyUsers vacía), comillas sin cerrar y especificar varios símbolos «=».
Cuando se utilizan registros DNS SSHFP para verificar claves, ssh ahora verifica todos los registros coincidentes, no solo los que contienen un tipo específico de firma digital. En ssh-keygen, al generar una clave FIDO con la opción -Ochallenge, la capa incorporada ahora se usa para hash, en lugar de las herramientas libfido2, lo que le permite usar secuencias de desafío mayores o menores de 32 bytes. En sshd, al procesar la directiva environment = «…» en archivos autorizados_keys, ahora se acepta la primera coincidencia y el límite de 1024 nombres de variables de entorno está en vigor.
Los desarrolladores de OpenSSH también advirtieron sobre la transferencia a la categoría de algoritmos obsoletos utilizando hashes SHA-1, debido a la mayor eficiencia de los ataques de colisión con un prefijo determinado (el costo de la selección de colisión se estima en unos 50 mil dólares).
En la próxima versión, se planea deshabilitar de forma predeterminada la capacidad de usar el algoritmo de firma digital de clave pública «ssh-rsa», que se menciona en el RFC original para el protocolo SSH y sigue estando muy extendido en la práctica.
Para probar el uso de ssh-rsa en sistemas, puede intentar conectarse a través de ssh con la opción «-oHostKeyAlgorithms = -ssh-rsa». Al mismo tiempo, deshabilitar las firmas digitales «ssh-rsa» por defecto no significa un rechazo total al uso de claves RSA, ya que además de SHA-1, el protocolo SSH permite el uso de otros algoritmos para el cálculo de hashes. En particular, además de «ssh-rsa», será posible utilizar los enlaces «rsa-sha2-256» (RSA / SHA256) y «rsa-sha2-512» (RSA / SHA512).
Para suavizar la transición a nuevos algoritmos en OpenSSH, la configuración UpdateHostKeys estaba previamente habilitada de forma predeterminada, lo que le permite cambiar automáticamente los clientes a algoritmos más confiables.
Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión, puedes consultar los detalles dirigiéndote al siguiente enlace.
¿Como instalar OpenSSH 8.7 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-8.7.tar.gz
Entramos al directorio creado:
cd openssh-8.7
Y podremos realizar la compilación con los siguientes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh make make install