Autenticación SSH Segura mediante Claves Criptográficas
Windows (cliente) → Linux Mint (servidor)
1. Idea rápida (qué va a pasar) #
- En Windows creas un par de claves (privada + pública).
- Copias la clave pública a Linux Mint.
- Linux Mint solo dejará entrar a quien tenga la clave privada.
- Te conectas sin contraseña (o solo con passphrase local).
2. Comprobar SSH en Windows #
En PowerShell o CMD:
1ssh -V
Si ves OpenSSH_for_Windows, ya está listo.
Si no:
- Configuración → Aplicaciones → Características opcionales
- Añadir → Cliente OpenSSH
3. Generar la clave en Windows #
En PowerShell:
1ssh-keygen -t ed25519 -a 64 -C "windows-a-mint"
Pulsa Enter en:
- Ruta (se guarda en
C:\Users\TU_USUARIO\.ssh\) - Pon passphrase (recomendado)
📁 Se crean:
id_ed25519→ privadaid_ed25519.pub→ pública
4. Preparar Linux Mint (servidor) #
En Linux Mint, asegúrate de tener SSH:
1sudo apt update 2sudo apt install openssh-server
Comprueba que está activo:
1systemctl status ssh
5. Copiar la clave pública a Linux Mint #
Forma más universal (manual) #
En Windows:
1type $env:USERPROFILE\.ssh\id_ed25519.pub
Copia toda la línea.
En Linux Mint (usuario al que te conectarás):
1mkdir -p ~/.ssh 2chmod 700 ~/.ssh 3nano ~/.ssh/authorized_keys
Pega la clave y guarda.
Permisos correctos (muy importante):
1chmod 600 ~/.ssh/authorized_keys
6. Conectarte desde Windows #
Desde PowerShell:
1ssh usuario@IP_DE_LINUX_MINT
✔️ Si todo está bien:
- No pide contraseña del usuario
- Pide passphrase (si la pusiste)
7. Crear un alias (muy recomendable) #
En Windows edita:
C:\Users\TU_USUARIO\.ssh\config
Ejemplo:
1Host mint 2 HostName 192.168.1.100 3 User angel 4 IdentityFile ~/.ssh/id_ed25519
Ahora conectas así:
1ssh mint
8. Endurecer Linux Mint (opcional pero recomendado) #
Cuando confirmes que funciona la clave, en Linux Mint:
1sudo nano /etc/ssh/sshd_config
Asegura estas líneas:
1PubkeyAuthentication yes 2PasswordAuthentication no 3PermitRootLogin no
Recarga SSH:
1sudo systemctl reload ssh
⚠️ No cierres la sesión actual hasta probar desde Windows otra vez.
Resumen del tema
Conceptos clave #
- Criptografía Asimétrica en SSH: generación de par de claves en el cliente mediante
ssh-keygen -t ed25519 -a 64(clave privadaid_ed25519y públicaid_ed25519.pub). - Autorización en el Servidor (
authorized_keys): registro de la clave pública en~/.ssh/authorized_keysaplicando permisos estrictos (chmod 700 ~/.sshychmod 600 ~/.ssh/authorized_keys). - Configuración de Clientes (
~/.ssh/config): creación de perfilesHost mintpara simplificar la conexión (ssh mint). - Bastionado (Hardening) del Servidor SSH: edición de
/etc/ssh/sshd_configactivandoPubkeyAuthentication yes, deshabilitando contraseñas (PasswordAuthentication no) y denegando root (PermitRootLogin no).
Qué debes recordar #
La autenticación por clave pública Ed25519 elimina el riesgo de ataques por fuerza bruta de contraseñas y permite el bastionado total de OpenSSH.