🔒 Deshabilitar el acceso SSH para root y usar claves en Linux
La seguridad de tu servidor es clave 🔑. Una forma efectiva de protegerlo es deshabilitar el acceso SSH para root y usar autenticación con clave pública en lugar de contraseñas. Esto evita ataques de fuerza bruta y asegura que solo quienes tengan la clave privada podrán conectarse.
🚀 Paso 1: Deshabilitar el acceso SSH para root
Edita el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Busca la línea:
PermitRootLogin yes
Cámbiala por:
PermitRootLogin no
Guarda los cambios (CTRL + X, Y, Enter) y reinicia el servicio SSH:
sudo systemctl restart ssh
🔑 Paso 2: Generar claves SSH en tu computadora
Las claves SSH se generan en la computadora desde la que te conectarás al servidor.
ssh-keygen -t rsa -b 4096
Esto generará dos archivos en ~/.ssh/
:
id_rsa
→ Clave privada (no la compartas).id_rsa.pub
→ Clave pública (se instala en el servidor).
📤 Paso 3: Copiar la clave pública al servidor
Desde tu PC, usa:
ssh-copy-id usuario@IP
O, si no está disponible:
cat ~/.ssh/id_rsa.pub | ssh usuario@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Luego, en el servidor:
sudo nano /etc/ssh/sshd_config
Asegúrate de que estas líneas están configuradas correctamente:
PasswordAuthentication no
PubkeyAuthentication yes
Reinicia SSH:
sudo systemctl restart ssh
🌎 Cómo conectarse al servidor desde distintos dispositivos
🖥️ Desde otra PC (Windows, Linux, Mac)
ssh -i ~/.ssh/id_rsa usuario@IP
🪟 Windows (PuTTY)
puttygen ~/.ssh/id_rsa -o id_rsa.ppk
📱 Desde Android
Usa Termux o JuiceSSH y copia la clave privada a:
/data/data/com.termux/files/home/.ssh/
Luego conéctate con:
ssh -i ~/.ssh/id_rsa usuario@IP
✅ Conclusión
Has eliminado el acceso root y habilitado solo autenticación con clave pública, protegiendo así tu servidor contra ataques de fuerza bruta.