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.