Búsqueda de sitios web

Cómo instalar el servidor OpenSSH desde el código fuente en Linux


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

Recientemente se lanzó OpenSSH 9.3 y viene con muchas características nuevas y correcciones de errores; Puede leer las notas de la versión de SSH 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 en un sistema Linux desde fuentes. Asumimos que ya tiene una instalación de la suite OpenSSH.

Requisitos:

  • 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 >= 1.0.1 < 1.1.0

Instalar el servidor OpenSSH desde la fuente

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 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 otros paquetes necesarios, como se indica a continuación.

-------------- On RedHat-based Distros --------------
sudo yum update
sudo yum group install 'Development Tools'
sudo yum install zlib-devel openssl-devel

-------------- On Debian-based Distros --------------
sudo apt update 
sudo apt install build-essential zlib1g-dev libssl-dev 

Para crear un entorno adecuado para instalar el servidor OpenSSH, necesitamos crear un nuevo usuario y grupo del sistema llamado “sshd”, así como un lugar seguro para 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 – 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 del usuario
  • -c – usado para agregar un comentario
  • -s – especifica el shell del usuario

Ahora, descargue el tarball de la versión 9.3 de OpenSSH desde cualquiera de los espejos HTTP disponibles o puede usar el siguiente comando wget para descargarlo directamente en su terminal.

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

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 PREFIJO 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 la compatibilidad con PAM y SELinux, agregue las opciones --with-pam y --with-selinux, respectivamente, necesita instalar todos los archivos de encabezado necesarios. para que 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_9.3p1, OpenSSL 3.0.1 14 Dec 2021

Los distintos archivos de configuración de OpenSSH se encuentran en:

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

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

Quizás también te interese leer los siguientes artículos relacionados con SSH.

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