Parte de la serie: Linux
1. Autenticación con claves SSH
La forma más segura y cómoda de conectar es usando claves asimétricas en lugar de contraseñas.
1.1 Generar un par de claves
En tu ordenador local (no en el servidor), genera un par de claves:
ssh-keygen -t ed25519 -C "tu@email.com"
Presiona Enter para aceptar la ruta por defecto y, opcionalmente, ponle una contraseña a la clave para extra seguridad.
1.2 Copiar la clave al servidor
Usa el comando ssh-copy-id para enviar tu clave pública al servidor:
ssh-copy-id usuario@192.168.1.100
Tras introducir tu contraseña una última vez, podrás entrar sin ella:
ssh usuario@192.168.1.100
2. Archivo de configuración (~/.ssh/config)
Si gestionas varios servidores, memorizar IPs y usuarios es un dolor. Crea un archivo ~/.ssh/config en tu ordenador local:
nano ~/.ssh/config
Añade tus servidores:
Host home-server
HostName 192.168.1.100
User alex
IdentityFile ~/.ssh/id_ed25519
Host vps
HostName 203.0.113.10
User admin
Port 2222
Ahora puedes conectar simplemente escribiendo:
ssh home-server
3. Hardening: Desactivar autenticación por contraseña
Una vez que las claves funcionan, desactiva el acceso por contraseña para evitar ataques de fuerza bruta.
En el servidor, edita la configuración de SSH:
sudo nano /etc/ssh/sshd_config
Busca y modifica estas líneas:
PasswordAuthentication no
PermitRootLogin no
ChallengeResponseAuthentication no
Reinicia el servicio SSH para aplicar los cambios:
sudo systemctl restart ssh
¡Ahora tu servidor es mucho más seguro y accesible!