Cómo instalar OpenSSH 8.0 Server desde la fuente en Linux


OpenSSH es una implementación completa, gratuita y de código abierto del protocolo SSH 2.0. Proporciona una serie de herramientas para acceder y administrar de forma segura sistemas informáticos remotos y administrar claves de autenticación, como ssh (un reemplazo seguro de telnet), ssh-keygen, ssh-copy-id, ssh-add y más.

Recientemente se lanzó OpenSSH 8.0 y se incluye con muchas características nuevas y correcciones de errores; puede leer las notas de la versión para obtener más información.

En este artículo, explicaremos cómo instalar y configurar la última versión del servidor y cliente OpenSSH 8.0 en un sistema Linux desde las fuentes. Suponemos que tiene una instalación existente de la suite OpenSSH.

  • Un sistema Linux Debian/Ubuntu o RHEL/CentOS
  • compilador de C
  • Zlib 1.1.4 o 1.2.1.2 o superior
  • LibreSSL u OpenSSL> u003d 1.0.1 <1.1.0

Instale el servidor y el cliente OpenSSH en Linux

Antes de instalar la última versión de SSH, asegúrese de verificar la versión actual de SSH instalada en su sistema usando el siguiente comando.

$ ssh -V

OpenSSH_7.7p2 Ubuntu-4ubuntu2.5, OpenSSL 1.0.2g	1 Mar 2016

A partir del resultado anterior, la versión de OpenSSH instalada es 7.7, para instalar la última versión de OpenSSH, primero debe instalar algunas dependencias, es decir, herramientas de desarrollo o elementos esenciales de compilación y los otros paquetes necesarios, de la siguiente manera.

-------------- CentOS/RHEL 7/6--------------
$ sudo yum group install 'Development Tools' 
$ sudo yum install zlib-devel openssl-devel

-------------- RHEL 8 and Fedora 22+ --------------
$ sudo dnf group install 'Development Tools' 
$ sudo dnf install zlib-devel openssl-devel

-------------- Debian/Ubuntu --------------
$ sudo apt update 
$ sudo apt install build-essential zlib1g-dev libssl-dev 

Para crear un entorno adecuado para instalar el servidor OpenSSH versión 8.0, necesitamos crear un nuevo usuario y grupo del sistema llamado "sshd", así como un lugar seguro para hacer chroot.

Nota: Por lo general, si tiene una instalación existente, este entorno ya debería estar en su lugar, puede omitir esta sección y pasar a la siguiente. De lo contrario, ejecute los siguientes comandos para configurarlo.

$ sudo mkdir /var/lib/sshd
$ sudo chmod -R 700 /var/lib/sshd/
$ sudo chown -R root:sys /var/lib/sshd/
$ sudo useradd -r -U -d /var/lib/sshd/ -c "sshd privsep" -s /bin/false sshd

Explicando las banderas en el comando useradd anterior:

  • -r: le dice a useradd que cree un usuario del sistema
  • -U: le indica que cree un grupo con el mismo nombre e ID de grupo
  • -d: especifica el directorio de usuarios
  • -c: se usa para agregar un comentario
  • -s: especifica el shell del usuario

Ahora, descargue el tarball de OpenSSH versión 8.0 desde cualquiera de los comandos wget para descargarlo directamente en su terminal.

$ wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
$ tar -xzf openssh-8.0p1.tar.gz
$ cd openssh-8.0p1/

Ahora crearemos e instalaremos el servidor OpenSSH usando --with-md5-passwords , --with-privsep-path y --sysconfdir options, que instalará todos los archivos en/usr/local/(este es el PREFIJO de instalación predeterminado).

Puede ver todas las opciones disponibles ejecutando ./configure -h y personalizar aún más su instalación.

$ ./configure -h

Por ejemplo, para habilitar la compatibilidad con SELinux, agregue las opciones --with-pam y --with-selinux , respectivamente, debe instalar todos los archivos de encabezado necesarios para ellos trabajar.

## Install PAM and SELinux Headers ##
$ sudo apt install libpam0g-dev libselinux1-dev   [On Debian/Ubuntu]
$ sudo yum install pam-devel libselinux-devel     [On CentOS/RHEL]

## Compile and Install SSH from Sources ##
$ ./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh 
$ make
$ sudo make install 

Una vez que haya instalado OpenSSH, reinicie SSH o abra otra ventana de terminal y verifique la versión de OpenSSH ahora instalada en su sistema.

$ ssh -V

OpenSSH_8.0p1, OpenSSL 1.1.0g  2 Nov 2017

Los diversos archivos de configuración de OpenSSH ubicados en:

  • ~/.ssh/*: este directorio almacena configuraciones de cliente ssh específicas del usuario (alias ssh) y claves.
  • /etc/ssh/ssh_config: este archivo contiene configuraciones de cliente ssh para todo el sistema.
  • /etc/ssh/sshd_config: contiene configuraciones de servicio sshd.

Para configurar los alias ssh, consulte: Cómo configurar conexiones SSH personalizadas para simplificar el acceso remoto

Es posible que también desee leer los siguientes artículos relacionados con SSH.

  1. Cómo crear tunelización SSH o reenvío de puertos en Linux
  2. Cómo cambiar el puerto SSH predeterminado a un puerto personalizado en Linux
  3. 4 formas de acelerar las conexiones SSH en Linux
  4. Cómo encontrar todos los intentos de inicio de sesión SSH fallidos en Linux
  5. Cómo deshabilitar el inicio de sesión de raíz SSH en Linux

¡Eso es! En este artículo, explicamos cómo instalar y configurar la última versión del servidor y cliente OpenSSH en un sistema Linux. Si tiene alguna pregunta o comentario, utilice el formulario de comentarios a continuación para comunicarse con nosotros.