OffshoreVps
Seguridad5 oct 20266 min de lecturaPor el equipo de OffshoreVps

Claves SSH explicadas: protege el acceso a tu VPS en 5 minutos

Crea una clave Ed25519, cópiala a tu servidor, desactiva el acceso por contraseña de forma segura y configura un SSH config ordenado. Hazlo en cada servidor nuevo.

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.

Ventana de terminal en un VPS que muestra los comandos usados para las claves SSH de un VPS, empezando por “ssh-keygen -t ed25519 -C "me@laptop"”
El tipo de comandos que ejecutarás en tu servidor en esta guía.

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.

Los pasos de esta guía en orden: 1. Cómo funcionan las claves SSH; 2. 1. Crea un par de claves; 3. 2. Copia la clave pública al servidor; 4. 4. Desactiva el acceso por contraseña; 5. 5. Una configuración de cliente ordenada; 6. Buenas prácticas
Los pasos de esta guía, en orden.

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-agent para introducir la frase de contraseña una vez por sesión.
  • Elimina las claves de authorized_keys cuando 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.