OpenSSH 9.0 llega con SFTP en lugar de scp, mejoras y mas

Hace poco se dio a conocer el lanzamiento de la nueva versión de OpenSSH 9.0, una implementación abierta de cliente y servidor para trabajar con los protocolos SSH 2.0 y SFTP.

Para quienes desconocen de OpenSSH (Open Secure Shell) deben saber 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.

La suite OpenSSH incluye las siguientes utilidades de línea de comandos y demonios :

  • scp: el cual es un reemplazo de rcp.
  • sftp: un reemplazo de ftp para copiar archivos entre computadoras.
  • ssh: un reemplazo de rlogin , rsh y telnet para permitir el acceso de shell a una máquina remota.
  • ssh-add y ssh-agent: un conjunto de utilidades para facilitar la autenticación al mantener las claves listas y evitar la necesidad de ingresar frases de contraseña cada vez que se utilizan.
  • ssh-keygen: una herramienta para inspeccionar y generar las claves RSA , DSA y de curva elíptica que se utilizan para la autenticación de usuarios y hosts.
  • ssh-keyscan: que escanea una lista de hosts y recopila sus claves públicas.
  • sshd: el demonio del servidor SSH.

Principales novedades de OpenSSH 9.0

En la nueva versión, la utilidad scp se movió de forma predeterminada para usar SFTP en lugar del protocolo SCP/RCP heredado.

SFTP usa métodos de manejo de nombres más predecibles y no usa el procesamiento de shell de patrones glob en nombres de archivo en el otro lado del host, lo que crea problemas de seguridad. En particular, cuando se usa SCP y RCP, el servidor decide qué archivos y directorios enviar al cliente, y el cliente solo verifica la exactitud de los nombres de los objetos devueltos, lo que, en ausencia de controles adecuados por parte del cliente, permite que el servidor para transferir otros nombres de archivo que difieren de los solicitados.

El protocolo SFTP no tiene estos problemas, pero no admite la expansión de rutas especiales como «~/». Para abordar esta diferencia, desde OpenSSH 8.7, la implementación del servidor SFTP admite la extensión de protocolo «expand-path@openssh.com» para expandir las rutas ~/ y ~user/.

Al usar SFTP, los usuarios también pueden encontrar incompatibilidades causadas por la necesidad de doble escape de los caracteres de expansión de la ruta en las solicitudes SCP y RCP para evitar que se interpreten en el lado remoto.

En SFTP, este escape no es necesario y las comillas adicionales pueden provocar un error de transferencia de datos. Al mismo tiempo, los desarrolladores de OpenSSH se negaron a agregar una extensión para repetir el comportamiento de scp en este caso, ya que el escape doble se ve como una falla que no tiene sentido repetir.

Otros cambios que se destacan de esta nueva versión de OpenSSH 9.0 es que ssh y sshd tienen un algoritmo híbrido de intercambio de claves «sntrup761x25519-sha512@openssh.com» (ECDH/x25519 + NTRU Prime) habilitado por defecto, resistente a la fuerza bruta en computadoras cuánticas y combinado con ECDH/x25519 para bloquear posibles problemas en NTRU Prime que puedan surgir en el futuro. En la lista KexAlgorithms, que determina el orden en que se eligen los métodos de intercambio de claves, el algoritmo mencionado ahora ocupa el primer lugar y tiene prioridad sobre los algoritmos ECDH y DH.

Por otra parte, tambien se destaca que las computadoras cuánticas aún no han alcanzado el nivel de descifrado de claves tradicionales, pero el uso de la protección híbrida protegerá a los usuarios de ataques relacionados con el almacenamiento de sesiones SSH interceptadas con la expectativa de que puedan descifrarse en el futuro, cuando las computadoras cuánticas necesarias estén disponibles.

La extensión «copy-data» se ha agregado a sftp-server, que permite copiar datos en el lado del servidor, sin transferirlos al cliente, si el archivo de origen y el de destino están en el mismo servidor.

Ademas de que el comando «cp» se agregó a la utilidad sftp para obligar al cliente a copiar archivos en el lado del servidor.

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 9 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.0.tar.gz

Entramos al directorio creado:

cd openssh-9.0

Y podremos realizar la compilación con los siguientes comandos:

./configure --prefix=/opt --sysconfdir=/etc/ssh
make
make install

Deja tu comentario

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

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Marcos dijo

    Gracias por el artículo que es muy interesante y útil, pero el tutorial de instalación, no es correcto:

    Cuando se descomprime el fichero openssh-9.0.tar.gz, con el comando proporcionado, no se genera una carpeta openssh-9.0, sino que lo descomprime en la siguiente ruta:

    ./ssh

    De todos modos y accediento a la carpeta descomprimida, al lanzar el comando:

    ./configure –prefix=/opt –sysconfdir=/etc/ssh

    la respuesta es la siguiente:

    no existe el archivo o el directorio: ./configure

    Muchas gracias.