En este momento estás viendo OpenSSH 9.1.  Novedades e instalación

OpenSSH 9.1. Novedades e instalación

OpenSSH 9.1. Novedades e instalación

Para el inicio de sesión remoto, con el protocolo SSH, «OpenSSH», es la principal herramienta de conectividad de código abierto. Nos servirá para prevenir intrusiones cifrando todo el tráfico en ambos sentidos. Nos ofrece capacidades de tunelización segura, varios métodos de autenticación y opciones de configuración más sofisticadas.

Para hacer las configuraciones del servicio, con más granularidad, puedes consultar «Configuración de un servidor ssh»

Sumario

  • Consideraciones previas
  • Novedades de OpenSSH 9.1
  • Instalación del código fuente

Consideraciones previas

El pasado 4 de octubre vió la luz «OpenSSH 9.1», una implementación completa del protocolo SSH 2.0 que incluye soporte para servidor y cliente sftp. Contiene, fundamentalmente, correcciones de errores y algunas vulnerabilidades.

Openssh 9.1

OpenSSH está desarrollado dentro del «Poyecto OpenBSD» y disponible bajo una licencia «BSD-style». Encontrarás toda la información en la pagina del proyecto.

Es software, libre y de código abierto, alternativa al privativo «Secure shell», que contiene herramientas para establecer comunicaciones seguras con el protocolo SSH.

OpenSSH proporciona las siguientes herramientas:

  • ssh, scp y sftp Para realizar operaciones remotas
  • ssh-add, ssh-keysign, ssh-keyscan y ssh-keygen Para la gestión de claves
  • sshd, sftp-server y ssh-agent Servicios

Novedades de OpenSSH 9.1

En cuanto a la seguridad, esta versión contiene correcciones para tres problemas menores de seguridad de la memoria, «ssh-keyscan» (solución al desbordamiento de byte único en el código de procesamiento de banner SSH), «ssh-keygen» (la doble llamada a la función «free()» en caso de error al calcular «hashes» para ficheros y verificar firmas digitales), y «ssh-keysign».

ssh para comunicaciones seguras

Anuncia cambios potencialmente incompatibles en el proyecto portátil, ya que ahora OpenSSH firma compromisos y etiquetas de liberación utilizando el soporte de firma SSH reciente de git. En el repositorio «.git_allowed_signers» se incluyen las claves de firma de los desarrolladores, firmados con PGP.

Directivas

En las directivas «SetEnv» en los ficheros de configuración «ssh_config» y «sshd_config», si se define varias veces el valor de una variable de entorno, cogerá el valor de la primera ocurrencia y no la última aparición, como hasta ahora.

Al ejecutar ssh-keygen con la opción -A, ya no nos generará claves DSA, ya que se consideran inseguras y no se usan hace un tiempo.

Con la directiva «RequiredRSAsize», podemos establecer un mínimo de caracteres para la longitud de la clave RSA. Las claves de autenticación de usuarios, que estén por debajo de lo establecido, se ignorarán.

Si el servidor ofrece una clave RSA que se encuentre por debajo de este límite, terminará la conexión, ya que el protocolo SSH no incluye la capacidad de volver a intentar un intercambio de clave fallido.

Openssh para comunicaciones seguras

«sftp-server» y «sftp», disponen de una extensión «users-groups-by-id@openssh.com» para permitir al usuario cliente obtener nombres de usuario/grupo que correspondan a un conjunto de uids/gids.

Además, «sftp-server», incorpora la extensión «home-directory» para expandir las rutas ~/ y ~user/, sustituyendo la extensión anterior «expand-path@openssh.com».

«ssh-keygen» y «sshd» nos permitirán establecer intervalos de validez de los certificados, tiempos de verificación de «sshsig» y opciones de tiempo de caducidad de «authorized_keys». Ahora permite usar fechas de la zona horaria UTC, si tienen sufijo con un caracter «Z», y la predeterminada del sistema.

«ssh-keygen», con la opción «-U», permite un usuario existente, con opciones de firma «-Y sign», pero requiere que las claves privadas estén alojadas en su sistema.

Instalación del código fuente

Para que funcione correctamente «./configure», tienes que verificar en synaptic, o con apt-cache, si dispones de las librerías libncurses, libncurses-dev en debian y build-essential.

Descargamos el código fuente de su página oficial

Página de descargas de openssh

En mi caso obtengo «openssh-9.1p1.tar.gz».

Código descargado

Instalación

Creamos un directorio donde instalaremos el software

mkdir ~/openssh_9.1

Copiamos el fichero al directorio donde lo instalaremos

cd Descargas

cp openssh-9.1p1.tar.gz ~/openssh_9.1/openssh-9.1p1.tar.gz
Copiamos el fichero al directorio recién creado

Nos movemos al directorio recién creado y comprobamos que tenemos el fichero

cd ../openssh_9.1

Y desempaquetamos el software

tar -xvf openssh-9.1p1.tar.gz
Desempaquetando el software

Compilación del código fuente

Ahora tenemos que compilar el código e instalarlo.

Nos desplazamos al directorio donde lo instalaremos y ejecutamos los siguientes comandos

./configure 
Compilamos el código

Si te dice que faltan los paquetes zlib1g, zlib1g-dev, zlib-bin , zlibc y libcrypto, los instalas como siempre y sigues,

make

make install

También puedes ejecutar

./configure --prefix=/ruta_a_directorio --sysconfdir=/etc/ssh

Con «–prefix=~/MiDirectorio», indicamos que se instale en la ruta que queramos «~/MiDirectorio», y con «–sysconfdir=/etc/ssh», le decimos que los ficheros de configuración los cree en «/etc/ssh».

Reiniciamos y comprobamos el servicio con

systemctl restart sshd

systemctl status sshd
Comprobación del servicio

Para hacer las configuraciones del servicio puedes consultar «Configuración de un servidor ssh»

Como resumen de la configuración, pues hay muchas directivas disponibles, ejecutamos el siguiente comando para generar la pareja de claves

ssh-keygen -t rsa
Generación de claves

Las claves generadas las guarda en ~/.ssh/ y son las siguientes:

  • id_rsa Clave privada
  • id_rsa.pub Clave pública

Solo nos falta copiar la clave pública al cliente. Lo podemos hacer con este comando:

ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@host

O con el comando scp desde el cliente

scp usuario@Ip_servidor:~/.ssh/id_rsa.pub ~/
Importación de la clave desde el cliente

Ya nos podemos conectar, con seguridad, desde el equipo cliente.

ssh usuario@Ip_servidor

En mi caso

ssh javier@192.168.1.14
Conexión ssh

Comprobamos que podemos acceder desde un cliente con Ubuntu al servidor Debian.

Encontraras toda la información del uso de ssh en el manual integrado de la herramienta.

man ssh

Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.

O si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto , tienes un formulario más adecuado.

Para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.