SSH es un protocolo de red que proporciona una conexión segura entre un cliente y un servidor. Toda la comunicación está cifrada, lo que evita el robo de datos transmitidos por la red y otros ataques remotos.
Supongamos que has contratado un servidor en la nube con Hostman. Para conectarte y administrarlo, necesitarás tener SSH instalado y configurado.
La guía a continuación describe cómo instalar y configurar SSH en Ubuntu 22.04.
Antes de continuar con la instalación y configuración del servicio Secure Shell, asegúrate de cumplir con los siguientes requisitos:
Conocimientos de línea de comandos en Linux
Es esencial dominar comandos básicos como sudo
, apt
, nano
y systemctl
al configurar el servicio. Estos comandos se usarán con frecuencia durante el proceso de instalación y configuración. Es fundamental sentirse cómodo trabajando en la línea de comandos para administrar el servicio eficazmente.
Acceso root o sudo para la configuración
Para instalar y configurar el servidor se requieren privilegios administrativos (root
). Los usuarios deben tener acceso a sudo
o haber iniciado sesión como root
. Sin estos privilegios, no se puede continuar con la configuración.
Conexión a internet para descargar paquetes
Es necesaria una conexión estable para instalar el servidor OpenSSH y cualquier otro paquete relacionado. Sin una conexión funcional, el sistema no podrá obtener los componentes de software necesarios.
Si hay un firewall como ufw habilitado en el sistema, puede bloquear el acceso remoto por defecto. Es fundamental configurar el firewall para permitir conexiones entrantes. Usa ufw u otra herramienta para asegurarte de que el puerto 22 esté abierto y accesible.
Necesitas acceso físico a tu máquina para configurarla localmente, o debe ser accesible remotamente mediante su dirección IP. Asegúrate de que el sistema esté conectado correctamente a la red para establecer una conexión.
No olvides que puedes desplegar tu servidor en la nube de forma rápida y económica con nuestro servicio de VPS Server Hosting.
Lo primero que debes hacer antes de instalar SSH en Ubuntu es actualizar todos los paquetes apt
a sus últimas versiones. Para ello, ejecuta el siguiente comando:
sudo apt update && sudo apt upgrade
OpenSSH no viene preinstalado en el sistema, así que instalémoslo manualmente. Para hacerlo, escribe en la terminal:
sudo apt install openssh-server
Comenzará la instalación de todos los componentes necesarios. Responde "Yes" a todos los mensajes del sistema.
Una vez completada la instalación, pasa al siguiente paso para iniciar el servicio.
Ahora debes habilitar el servicio que acabas de instalar usando el siguiente comando:
sudo systemctl enable --now ssh
Si el inicio es exitoso, verás un mensaje del sistema confirmándolo.
La opción --now
permite iniciar el servicio y configurarlo para que se inicie automáticamente al arrancar el sistema.
Para verificar que el servicio esté habilitado y en ejecución, escribe:
sudo systemctl status ssh
La salida debe contener la línea Active: active (running)
, lo que indica que el servicio está funcionando correctamente.
Si deseas deshabilitar el servicio, ejecuta:
sudo systemctl disable ssh
Esto desactiva el servicio y evita que se inicie al arrancar el sistema.
Antes de conectarte al servidor mediante SSH, revisa el firewall para asegurarte de que esté correctamente configurado.
En nuestro caso, tenemos instalado UFW, así que usaremos el siguiente comando:
sudo ufw status
En la salida, deberías ver que el tráfico SSH está permitido. Si no aparece en la lista, necesitas permitir las conexiones SSH entrantes. Este comando lo hará:
sudo ufw allow ssh
Una vez que completes todos los pasos anteriores, podrás iniciar sesión en el servidor usando el protocolo SSH.
Para hacerlo, necesitas la dirección IP o el nombre de dominio del servidor, y el nombre de un usuario creado en él.
En la línea de la terminal, introduce el siguiente comando:
ssh usuario@IP_del_servidor
O:
ssh usuario@dominio
Importante: para conectarse correctamente a un servidor remoto, SSH debe estar instalado y configurado tanto en el servidor remoto como en el equipo desde el cual realizas la conexión.
Para mayor seguridad, considera configurar un par de claves en lugar de depender de la autenticación por contraseña. Para generarlo, usa el siguiente comando:
ssh-keygen
Después de completar los cinco pasos anteriores, ya puedes conectarte remotamente al servidor. Sin embargo, puedes aumentar aún más la seguridad de la conexión cambiando el puerto por defecto o sustituyendo la autenticación por contraseña por autenticación mediante claves. Estos y otros cambios requieren editar el archivo de configuración de SSH.
Las principales configuraciones del servidor OpenSSH se almacenan en el archivo principal sshd_config
(ubicación: /etc/ssh
). Antes de editar, deberías crear una copia de seguridad del archivo:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.initial
Si después de editar el archivo encuentras errores, puedes restaurar sin problemas el archivo original.
Después de crear la copia de seguridad, puedes proceder a editar el archivo de configuración. Para ello, ábrelo con el editor nano
:
sudo nano /etc/ssh/sshd_config
En el archivo, cambia el puerto a uno más seguro. Lo mejor es elegir un valor del rango dinámico de puertos (49152 - 65535) y usar números diferentes por seguridad adicional. Por ejemplo, cambia el valor a 49532. Para hacerlo, descomenta la línea correspondiente en el archivo y cambia el puerto como se muestra en la imagen.
Además de esta configuración, se recomienda cambiar el modo de autenticación por contraseña a autenticación por clave. Para hacerlo, descomenta la línea correspondiente y asegúrate de que el valor sea "Yes", como se muestra en la imagen.
Ahora, desactiva el inicio de sesión como superusuario cambiando la línea correspondiente como se indica.
Otras configuraciones que puedes aplicar para mejorar la seguridad del servidor:
UseDNS
yes: verifica si el hostname coincide con la dirección IP.
PermitEmptyPasswords
no: prohíbe el uso de contraseñas vacías.
MaxAuthTries
: limita los intentos fallidos de conexión en una misma sesión.
AllowUsers
y AllowGroups
: especifican los usuarios y grupos autorizados:
# AllowUsers Usuario1 Usuario2 Usuario3
# AllowGroups Grupo1 Grupo2 Grupo3
LoginGraceTime
: define el tiempo máximo para autenticación. Se recomienda reducir este valor a una cuarta parte.
ClientAliveInterval
: define el tiempo de inactividad permitido antes de desconectar al usuario.
Después de realizar todos los cambios en el archivo de configuración, guárdalo y cierra el editor.
Reinicia el servicio para aplicar los cambios:
sudo systemctl restart ssh
Si cambiaste el puerto, deberás conectarte usando el nuevo puerto:
ssh -p numero_de_puerto usuario@IP_del_servidor
O:
ssh -p numero_de_puerto usuario@dominio
sudo systemctl status ssh
sudo systemctl restart ssh
sudo ufw allow 22
ping <IP_del_servidor>
Si necesitas deshabilitar el acceso remoto por cualquier motivo, sigue estos pasos:
Detener el servicio
Para dejar de aceptar conexiones temporalmente:
sudo systemctl stop ssh
Evitar inicio automático
Para impedir que se inicie al arrancar:
sudo systemctl disable ssh
Confirmar estado inactivo
Verifica que el servicio ya no esté en ejecución:
sudo systemctl status ssh
Desinstalar el servidor
Si ya no necesitas el servicio, elimina el servidor SSH y sus archivos asociados:
sudo apt remove openssh-server
Este artículo presenta una guía paso a paso sobre cómo instalar y configurar SSH en Ubuntu 22.04, y describe cómo editar el archivo de configuración principal para mejorar la seguridad. Esperamos que esta guía te ayude a establecer una conexión remota segura con tu servidor Ubuntu.
Para saber más sobre claves SSH, haz clic aquí.