Alex Sarmiento
ES / EN

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!