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 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».
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.
«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
En mi caso obtengo «openssh-9.1p1.tar.gz».
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
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
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
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
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
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 ~/
Ya nos podemos conectar, con seguridad, desde el equipo cliente.
ssh usuario@Ip_servidor
En mi caso
ssh javier@192.168.1.14
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.