Cómo instalar el servidor OpenSSH 8.0 desde la fuente en Linux


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

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

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

  • A Debian/Ubuntu or RHEL/CentOS Linux system
  • C compiler
  • Zlib 1.1.4 or 1.2.1.2 or greater
  • LibreSSL or OpenSSL >= 1.0.1 < 1.1.0

Instalar OpenSSH Server y Client 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

Del resultado anterior, la versión instalada de OpenSSH es 7.7 , para instalar la última versión de OpenSSH, primero necesita 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

-------------- 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 de la versión OpenSSH 8.0 , debemos crear un nuevo usuario y grupo del sistema llamado "sshd" , así como un lugar seguro para < fuerte> chroot .

$ 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 – tells useradd to create a system user
  • -U – instructs it to create a group with the same name and group ID
  • -d – specifies the users directory
  • -c – used to add a comment
  • -s – specifies the user’s shell

Ahora, descargue el archivo de la versión OpenSSH 8.0 de cualquiera de los servidores espejos HTTP disponibles o puede usar el siguiente comando wget para descargar 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 construiremos e instalaremos el servidor OpenSSH usando --with-md5-passwords , --with-privsep-path y --sysconfdir opciones, que instalarán todos los archivos en /usr/local/ (este es el PREFIX de instalación predeterminado).

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

$ ./configure -h

Por ejemplo, para habilitar el soporte de PAM y SELinux, agregue las opciones --with-pam y --with-selinux , respectivamente, necesita instalar todos los archivos de encabezado necesarios para que ellos trabajen.

## 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/* – this directory stores user specific ssh client configurations (ssh aliases) and keys.
  • /etc/ssh/ssh_config – this file contains system wide ssh client configurations.
  • /etc/ssh/sshd_config – contains sshd service configurations.

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

También puede leer estos artículos relacionados con SSH.

  1. How to Create SSH Tunneling or Port Forwarding in Linux
  2. How to Change Default SSH Port to Custom Port in Linux
  3. 4 Ways to Speed Up SSH Connections in Linux
  4. How to Find All Failed SSH Login Attempts in Linux
  5. How to Disable SSH Root Login in Linux

¡Eso es! En este artículo, hemos explicado 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.