Las contraseñas de SSH se adivinan. Las claves no. Pasar tu VPS a inicio de sesión con claves es la mayor mejora de seguridad que puedes hacer, y lleva unos cinco minutos.
Cómo funcionan las claves SSH
Creas un par de archivos. La clave privada se queda en tu ordenador y nunca se comparte. La clave pública va al servidor. Cuando te conectas, el servidor desafía a tu ordenador a demostrar que posee la clave privada correspondiente, sin que la clave cruce nunca la red.
1. Crea un par de claves
ssh-keygen -t ed25519 -C "me@laptop"
Las claves Ed25519 son cortas, rápidas y modernas. Elige una frase de contraseña cuando se te pida, para que un portátil robado no signifique un servidor robado. En Windows 10 y 11 el mismo comando funciona en PowerShell.
2. Copia la clave pública al servidor
ssh-copy-id user@your.server.ip
Sin ssh-copy-id, añade el contenido de ~/.ssh/id_ed25519.pub a ~/.ssh/authorized_keys en el servidor y luego ejecuta chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys.
3. Prueba antes de desactivar las contraseñas
Abre un segundo terminal e inicia sesión con la clave. Mantén abierta tu primera sesión hasta que esto funcione, para que un error no pueda dejarte fuera.
4. Desactiva el inicio de sesión con contraseña
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
sudo sshd -t && sudo systemctl reload ssh
La comprobación sshd -t detecta erratas antes de que puedan romper tu acceso. En algunos sistemas el servicio se llama sshd en lugar de ssh.
5. Una configuración de cliente ordenada
# ~/.ssh/config
Host myvps
HostName your.server.ip
User deploy
IdentityFile ~/.ssh/id_ed25519
Ahora solo tienes que escribir ssh myvps.
Buenas prácticas
- Usa una clave distinta por dispositivo, para poder revocar una sin tocar las demás.
- Usa
ssh-agentpara introducir la frase de contraseña una vez por sesión. - Elimina las claves de
authorized_keyscuando se pierda un dispositivo o un empleado se vaya. - Añade fail2ban para reducir el ruido en los registros, como en nuestra lista de refuerzo en 15 minutos.