Le pedimos a la inteligencia atificial Gemini de Google que nos explique cómo instalar y configurar OpenSSH en Linux
Explicanos detalladamente cómo instalar y configurar OpenSSH en LinuxLa instalación y configuración de OpenSSH en Linux es un proceso esencial para la administración remota de servidores. OpenSSH es el conjunto de herramientas más popular y seguro para acceder a un servidor a través de la red, permitiendo la ejecución de comandos, la transferencia de archivos y la gestión de túneles de forma cifrada.
Aquí te explicamos detalladamente cómo instalar y configurar OpenSSH en tu sistema Linux.
Paso 1: Instalación de OpenSSH
Aunque la mayoría de las distribuciones de Linux ya vienen con el cliente SSH preinstalado, es necesario instalar el paquete del servidor SSH para permitir conexiones entrantes.
En distribuciones basadas en Debian/Ubuntu:
Para instalar el servidor, abre una terminal y ejecuta el siguiente comando. Esto instalará el paquete openssh-server junto con todas sus dependencias.
Bash
sudo apt update
sudo apt install openssh-server -y
En distribuciones basadas en Fedora/CentOS/RHEL:
En estas distribuciones, el paquete se llama openssh-server.
Bash
sudo dnf install openssh-server -y
Paso 2: Verificar el estado del servicio
Una vez que el servidor OpenSSH está instalado, su servicio (sshd) se iniciará automáticamente. Puedes verificar su estado para asegurarte de que está activo y funcionando.
Bash
sudo systemctl status sshd
Si el servicio no está activo, puedes iniciarlo con el siguiente comando y habilitarlo para que se ejecute automáticamente en cada reinicio.
Bash
sudo systemctl start sshd
sudo systemctl enable sshd
Paso 3: Configurar el Firewall
Para que las conexiones SSH puedan llegar a tu servidor, debes asegurarte de que el firewall no esté bloqueando el puerto por defecto, que es el puerto 22.
Si usas UFW (Uncomplicated Firewall) en Ubuntu:
UFW es un firewall por defecto y fácil de usar en Ubuntu.
Bash
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
El comando sudo ufw allow ssh añade una regla que permite todo el tráfico entrante al puerto 22.
Si usas FirewallD en Fedora/CentOS/RHEL:
FirewallD es la herramienta de firewall estándar en estas distribuciones.
Bash
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
El comando --permanent hace que la regla persista después de un reinicio, y --reload aplica los cambios de inmediato.
Paso 4: Conectarse Remotamente
Con el servidor instalado y el firewall configurado, ya puedes conectarte a tu máquina de forma remota. Necesitas la dirección IP del servidor. Si no la conoces, puedes encontrarla con el comando ip a.
Desde un cliente SSH (otra máquina Linux, macOS o Windows):
Bash
ssh tu_usuario@tu_direccion_ip
Al ejecutar este comando, se te pedirá la contraseña de tu usuario en la máquina remota. Una vez autenticado, tendrás acceso a la línea de comandos de tu servidor.
Paso 5: Configuración de seguridad adicional (Opcional pero muy recomendado)
Para mejorar la seguridad, es vital que personalices la configuración de OpenSSH. El archivo de configuración principal es /etc/ssh/sshd_config.
1. Autenticación con clave pública (ssh-key)
Es mucho más seguro que usar contraseñas.
Genera la clave: En tu máquina local, usa ssh-keygen para crear un par de claves.
Bash
ssh-keygen -t rsa -b 4096
Copia la clave al servidor: Utiliza ssh-copy-id para copiar tu clave pública al servidor.
Bash
ssh-copy-id tu_usuario@tu_direccion_ip
Ahora podrás iniciar sesión sin contraseña.
2. Desactivar la autenticación por contraseña
Una vez que hayas verificado que el acceso con clave SSH funciona, desactiva la autenticación por contraseña para evitar ataques de fuerza bruta.
Abre el archivo de configuración de SSH:
Bash
sudo nano /etc/ssh/sshd_config
Busca la línea PasswordAuthentication y cámbiala de yes a no.
Ini, TOML
# Cambia esto:
# PasswordAuthentication yes
# A esto:
PasswordAuthentication no
Desactiva el acceso de root: Es una buena práctica de seguridad.
Busca la línea PermitRootLogin y cámbiala de yes a no.
Cambia el puerto SSH (opcional): Para evitar escaneos de red automatizados, puedes cambiar el puerto 22 por otro.
Busca la línea #Port 22 y cámbiala por un número alto, por ejemplo, Port 2222.
Recuerda actualizar la regla del firewall y el comando de conexión.
Reinicia el servicio: Después de cualquier cambio en el archivo de configuración, debes reiniciar el servicio para que los cambios surtan efecto.
Bash
sudo systemctl restart sshd