1. Generar una clave SSH en tu equipo local (si no la tienes)
ssh-keygen -t ed25519 -C "tu-correo@ejemplo.com"
Pulsa Enter para aceptar la ubicación por defecto (~/.ssh/id_ed25519) y establece una frase de paso si lo deseas.
2. Copiar la clave pública al servidor
ssh-copy-id root@IP_DEL_SERVIDOR
Esto añadirá tu clave pública a ~/.ssh/authorized_keys en el servidor.
3. Probar conexión sin contraseña
ssh root@IP_DEL_SERVIDOR
Debes poder entrar sin introducir la contraseña del usuario root, solo con tu clave privada.
4. Editar configuración de SSH para mayor seguridad
Abrir el archivo de configuración:
nano /etc/ssh/sshd_config
Modificar (o añadir si no existen) las siguientes líneas:
Port 2222
PermitRootLogin yes
PasswordAuthentication no
Port 2222: cambia el puerto por uno no estándar.PermitRootLogin yes: permite aún usar root por clave pública.PasswordAuthentication no: desactiva el inicio de sesión con contraseña.
5. Permitir el nuevo puerto en el firewall (si usas UFW)
ufw allow 2222/tcp
ufw delete allow OpenSSH
ufw allow ssh # Opcional: si quieres mantener el puerto 22 abierto temporalmente
6. Reiniciar el servicio SSH
systemctl restart ssh
7. Probar conexión con el nuevo puerto
ssh root@IP_DEL_SERVIDOR -p 2222
Asegúrate de no cerrar la sesión actual hasta confirmar que puedes conectarte con la nueva configuración.