Si acabas de alquilar un servidor VPS en la nube (AWS, DigitalOcean, Google Cloud) y lo has expuesto a internet con el puerto 22 abierto, tenemos que hablar. En este preciso instante, hay cientos de bots intentando entrar a tu servidor probando combinaciones de contraseñas mediante ataques de fuerza bruta.
La contraseña tradicional ya no es suficiente. En este tutorial de Guía SysAdmin, vamos a dar un salto de nivel hacia la seguridad profesional: aprenderemos a configurar la autenticación SSH mediante claves criptográficas. Consiste en crear un "candado" en el servidor y guardar la única "llave" en tu ordenador personal. Adiós a las contraseñas, hola a la seguridad absoluta.
🔑 ¿Cómo funciona el par de claves SSH?
El sistema genera dos archivos matemáticamente enlazados:
- Clave Privada (La llave): Se queda en tu PC. Nunca debes compartirla con nadie y es el archivo que te identifica.
- Clave Pública (El candado): La subes a cualquier servidor al que quieras conectarte para que reconozca tu llave.
Paso 1: Generar las claves en tu ordenador
Abre la terminal en tu ordenador local (funciona igual en Linux, macOS o usando PowerShell en Windows 10/11). Escribe el siguiente comando y pulsa Enter:
ssh-keygen -t rsa -b 4096
El sistema te hará un par de preguntas:
- Dónde guardar el archivo: Pulsa Enter para dejar la ruta por defecto (suele ser la carpeta oculta
.sshen tu directorio de usuario). - Passphrase (Contraseña adicional): Puedes poner una contraseña extra para proteger tu archivo de llave privada, o pulsar Enter dos veces para dejarlo en blanco y entrar al servidor de forma directa y automática.
Paso 2: Enviar el candado (Clave Pública) al Servidor
Ahora tenemos que mandar la clave pública a nuestro servidor Linux. Hay un comando mágico que hace todo el trabajo por ti. Cambia "usuario" y la IP por los datos reales de tu servidor:
ssh-copy-id usuario@192.168.1.50
Te pedirá la contraseña de tu usuario en el servidor por última vez. Una vez introducida, la clave pública se copiará de forma segura en el archivo de autorizaciones del servidor.
Nota para usuarios de Windows: Si el comandossh-copy-idte da error en PowerShell, puedes hacerlo manualmente. Solo tienes que abrir tu archivo localid_rsa.pubcon el bloc de notas, copiar el texto, y pegarlo en el servidor dentro del archivo~/.ssh/authorized_keys.
Paso 3: La prueba de fuego
Cierra la sesión y vuelve a intentar conectarte a tu servidor desde la terminal de forma normal:
ssh usuario@192.168.1.50
¡Magia pura! Entrarás directamente a la terminal del servidor sin que te pida ninguna contraseña. El servidor ha reconocido tu clave privada y te ha abierto la puerta al instante.
🛡️ Paso 4 (Opcional): Cerrar la puerta a las contraseñas
De nada sirve tener una cerradura de alta seguridad si dejamos la puerta tradicional abierta. Para ser un verdadero SysAdmin, debemos prohibir al servidor que acepte contraseñas de texto.
- Dentro del servidor, edita el archivo de configuración principal de SSH:
sudo nano /etc/ssh/sshd_config - Busca la línea que dice
PasswordAuthentication yesy cámbiala aPasswordAuthentication no. - Guarda el archivo (Ctrl+O, Enter) y sal del editor (Ctrl+X).
- Reinicia el servicio de red para aplicar los cambios con:
sudo systemctl restart ssh.
¡Infraestructura blindada! Tu servidor ahora es una fortaleza inmune a los ataques de fuerza bruta. Solo quien posea físicamente el archivo de tu clave privada en su ordenador podrá acceder a la consola. ¡Un paso de gigante en la seguridad de tu infraestructura!

Comentarios
Publicar un comentario
¿Dudas con la terminal? ¿Algún error en los logs al ejecutar el tutorial? ¡Deja tu comentario y lo revisamos juntos!