Cómo instalar y configurar SSH ⋆ ALexHost SRL

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
17.12.2024

Cómo instalar y configurar SSH

SSH (Secure Shell) es un protocolo utilizado para conectarse de forma segura a sistemas remotos, ejecutar comandos y transferir datos. Proporciona un método seguro para que los administradores de sistemas, desarrolladores y usuarios gestionen servidores y otros dispositivos de forma remota, utilizando conexiones cifradas. Instalar y configurar SSH es esencial para acceder de forma segura a los servidores, ya sea con fines de administración de sistemas, trabajo remoto o desarrollo.

En este artículo, te guiaremos a través de cómo instalar y configurar SSH en Linux, cubriendo los conceptos básicos, opciones de configuración y recomendaciones de seguridad.


¿Qué es SSH?

SSH son las siglas de Secure Shell, y permite a los usuarios conectarse de forma segura a un sistema remoto a través de una interfaz de línea de comandos. El protocolo encripta los datos entre el cliente y el servidor, lo que lo convierte en un método seguro de comunicación, especialmente para acceder a servidores a través de una red no segura como Internet.

SSH opera por defecto a través del puerto 22 y puede utilizarse para:

  • Acceso remoto a servidores
  • Transferencia segura de archivos (mediante SCP o SFTP)
  • Ejecución remota de comandos
  • Reenvío de puertos y túneles

Paso 1: Instalación de SSH

La mayoría de las distribuciones de Linux vienen con SSH preinstalado, pero si no lo está, puedes instalarlo fácilmente utilizando el gestor de paquetes de tu distribución.

Para Ubuntu/Debian:

sudo apt update sudo apt install openssh-server

Para CentOS/RHEL:

sudo yum install openssh-server

Para Fedora:

sudo dnf install openssh-server

Para Arch Linux:

sudo pacman -S openssh

Tras la instalación, tendrá el servidor y el cliente OpenSSH instalados, lo que le permitirá tanto ejecutar un servidor SSH como conectarse a otros servidores SSH.


Paso 2: Iniciar y habilitar el servicio SSH

Una vez instalado, es necesario iniciar el servicio SSH (también conocido como sshd – SSH daemon) y habilitarlo para que se ejecute al inicio del sistema.

Iniciar el servicio SSH:

sudo systemctl start ssh

Habilitar SSH para iniciar en el arranque:

sudo systemctl enable ssh

Puede comprobar si SSH se está ejecutando correctamente escribiendo:

sudo systemctl status ssh

Si el servicio se está ejecutando, verá un estado activo que indica que SSH está listo para aceptar conexiones.


Paso 3: Configuración básica de SSH

El comportamiento de SSH es controlado por el archivo de configuración ubicado en:

/etc/ssh/sshd_config

Puede editar este archivo para modificar la configuración de SSH, como cambiar el puerto predeterminado, deshabilitar el inicio de sesión root o configurar la autenticación basada en claves.

Para editar el archivo, utilice un editor de texto como nano o vim:

sudo nano /etc/ssh/sshd_config

Algunos cambios de configuración comunes incluyen:

1. Cambiar el puerto SSH por defecto

Por razones de seguridad, es una buena idea cambiar el puerto SSH por defecto de 22 a otro. Esto ayuda a reducir el riesgo de ataques automatizados dirigidos al puerto SSH predeterminado.

Encuentre la siguiente línea en el archivo de configuración:

#Puerto 22

Descoméntala y cambia el número de puerto:

Puerto 2222

Después de guardar el archivo, reinicie el servicio SSH para aplicar los cambios:

sudo systemctl restart ssh

Asegúrese de actualizar las reglas de su cortafuegos para permitir conexiones en el nuevo puerto.

2. Desactivar el inicio de sesión raíz

Permitir el inicio de sesión root a través de SSH es un riesgo de seguridad. Para evitarlo, busque la siguiente línea en el archivo de configuración:

PermitRootLogin sí

Cámbiela por:

PermitRootLogin no

Esto evitará el acceso root directo a través de SSH. Los usuarios todavía pueden iniciar sesión con una cuenta normal y luego cambiar a root usando sudo o su.

3. Activar la autenticación basada en claves

La autenticación basada en claves SSH es un método más seguro que el uso de contraseñas. Consiste en generar un par de claves SSH (clave pública y privada) y utilizar la clave privada para autenticarse.

Para activar la autenticación basada en claves, busque las siguientes líneas y asegúrese de que están configuradas como sí:

PubkeyAuthentication yes PasswordAuthentication no

Esto desactiva el inicio de sesión basado en contraseña y sólo permite el acceso SSH a través de la autenticación basada en clave.


Paso 4: Generación de claves SSH (autenticación basada en claves)

Los pares de claves SSH proporcionan una forma segura de iniciar sesión sin contraseña. A continuación se explica cómo generar y configurar claves SSH:

Paso 1: Generar el par de claves SSH

En su máquina local, ejecute el siguiente comando para generar un par de claves:

ssh-keygen -t rsa -b 4096

Se le pedirá que introduzca un nombre de archivo para guardar la clave (o pulse Intro para utilizar la ubicación predeterminada) y una frase de contraseña opcional para mayor seguridad.

Se crean dos archivos:

  • ~/.ssh/id_rsa: Tu clave privada (mantenla segura y no la compartas).
  • ~/.ssh/id_rsa.pub: Tu clave pública (puede compartirse y añadirse a servidores remotos).

Paso 2: Copiar la clave pública al servidor

Para utilizar la clave para el inicio de sesión SSH, copie la clave pública en el servidor remoto al que desea acceder. Puede hacerlo con el comando ssh-copy-id:

ssh-copy-id nombre_usuario@host_remoto

Sustituya username por el nombre de usuario de su servidor remoto y remote_host por la dirección IP o el nombre de host del servidor.

Esto copiará tu clave pública al servidor y la añadirá al archivo ~/.ssh/authorized_keys, permitiéndote iniciar sesión sin contraseña.

Paso 3: Iniciar sesión con la clave SSH

Ahora, puede iniciar sesión en el servidor remoto utilizando su clave privada:

ssh nombre_usuario@host_remoto

Si has configurado un puerto personalizado, especifícalo con la opción -p:

ssh -p 2222 nombre_usuario@host_remoto

Paso 5: Asegurar su configuración SSH

Después de configurar SSH, es importante seguir las mejores prácticas de seguridad para asegurarse de que su servidor está protegido de accesos no autorizados.

1. Utilice contraseñas seguras (si utiliza autenticación por contraseña)

Si no está utilizando autenticación basada en claves, asegúrese de que todas las cuentas de usuario utilizan contraseñas fuertes y complejas.

2. Utilice un cortafuegos

Asegúrese de que el cortafuegos de su servidor sólo permite el tráfico en el puerto SSH que está utilizando. Por ejemplo, si ha cambiado SSH al puerto 2222, permita el tráfico en ese puerto mediante ufw (en Ubuntu/Debian) o firewalld (en CentOS/RHEL).

sudo ufw allow 2222/tcp sudo ufw enable

3. Limitar el acceso SSH

Limite el acceso SSH a direcciones IP o rangos específicos configurando el cortafuegos o utilizando /etc/hosts.allow y /etc/hosts.deny.


Paso 6: Probar y solucionar problemas de SSH

Después de configurar SSH, es importante probar su configuración. Intente iniciar sesión utilizando SSH para asegurarse de que todo funciona correctamente.

Consejos comunes para solucionar problemas de SSH:

  1. Compruebe la configuración del cortafuegos: Asegúrese de que el cortafuegos no está bloqueando el puerto SSH.
  2. Compruebe el estado del servicio SSH: Asegúrese de que el servicio SSH se está ejecutando con systemctl status ssh.
  3. Compruebe la configuración: Vuelva a comprobar el archivo /etc/ssh/sshd_config por si hubiera algún error de configuración.
  4. Utilice el modo detallado para depurar: Si hay problemas, utilice la opción -v cuando se conecte para ver la salida detallada:
ssh -v nombre_usuario@host_remoto

Conclusión

Instalar y configurar SSH es una habilidad fundamental para cualquier administrador o usuario de Linux que necesite gestionar sistemas remotos de forma segura. Siguiendo esta guía, usted puede instalar SSH, configurarlo para un acceso seguro, e implementar las mejores prácticas para proteger su servidor de accesos no autorizados. Una vez configurado, SSH se convierte en una poderosa herramienta para la gestión remota, la automatización y la comunicación segura entre sistemas.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills