Guía Definitiva: Configurar Acceso SSH sin Contraseña entre Windows y Linux



¿Por qué SSH con Claves es tu Nuevo Mejor Amigo?

¿Estás cansado de escribir contraseñas cada vez que te conectas a tu servidor? ¿Te da miedo que alguien adivine tu contraseña? Las claves SSH son como tener una llave digital imposible de copiar, en lugar de una contraseña que cualquiera podría adivinar.

El problema de las contraseñas tradicionales

Las contraseñas son como candados de maleta: cualquiera con suficiente tiempo puede probar combinaciones. SSH con claves es como tener una cerradura biométrica que solo se abre con tu huella digital. ¿No suena mil veces mejor?

Ventajas que te harán cambiar para siempre

Imagina conectarte a tu servidor con un solo comando, sin escribir contraseñas, con seguridad militar y la posibilidad de revocar acceso instantáneamente. Suena a magia, pero es realidad con las claves SSH.

Entendiendo el ABC de las Claves SSH

Antes de sumergirnos en la configuración, entendamos cómo funciona esta magia. No te preocupes, te lo explico como si tuvieras 5 años.

Clave privada vs. clave pública: ¿quién es quién?

Tu clave privada es como la llave de tu casa: la guardas en secreto y nunca la compartes. La clave pública es como la cerradura: puedes ponerla en todas partes porque solo funciona con tu llave única.

El handshake mágico: cómo se autentican

Cuando te conectas, tu computadora dice «¡Hola! Tengo la llave que abre esta cerradura». El servidor responde «¡Demuéstramelo!» y hacen un apretón de manos digital que solo ellos entienden.

Paso 1: Generación de Claves en el Servidor Linux

¡Manos a la obra! Empezamos desde donde tienes acceso actualmente: tu servidor Linux.

Comandos mágicos que necesitas conocer

bash

ssh-keygen -t rsa -b 2048 -f ~/.ssh/mi_llave_secreta

Este comando es como pedirle a un herrero que te forge una llave única. El parámetro -t rsa especifica el tipo de llave, -b 2048 el tamaño (suficientemente grande) y -f donde guardarla.

Parámetros importantes que debes entender

  • -t rsa: El tipo de algoritmo. RSA es el abuelo confiable de las criptografía.
  • -b 2048: Bits de seguridad. 2048 es el punto ideal entre seguridad y velocidad.
  • -f: El nombre del archivo. Elige algo que recuerdes.

Paso 2: Configuración del Servidor para Aceptar Claves

Ahora que tienes la llave, necesitas instalar la cerradura en la puerta correcta.

El archivo authorized_keys: tu lista VIP

Este archivo es como la lista de invitados de una fiesta exclusiva. Solo las claves en esta lista pueden entrar. Para agregar tu clave:

bash

cat ~/.ssh/mi_llave_secreta.pub >> ~/.ssh/authorized_keys

Permisos Linux: el guardia de seguridad estricto

Linux es muy celoso con los permisos. Si no están correctos, te negará el acceso aunque tengas la clave correcta:

bash

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/mi_llave_secreta

Paso 3: Transferencia Segura de Claves a Windows

Timepo de pasar la llave a tu Windows. ¡No la pierdas por el camino!

Métodos a prueba de errores

Tienes dos opciones, como elegir entre escalera o elevador: ambas te llevan al mismo lugar.

Opción A: Copia manual segura

Desde el servidor:

bash

cat ~/.ssh/mi_llave_secreta

Copia TODO el contenido, incluyendo las líneas de ---BEGIN--- y ---END---.

Opción B: Uso de SCP para los valientes

Desde PowerShell en Windows:

powershell

scp usuario@servidor:~/.ssh/mi_llave_secreta C:\Users\TuUsuario\.ssh\

Paso 4: Configuración del Lado Windows

Windows necesita saber que esta llave es especial y debe protegerla.

La carpeta .ssh: tu nueva bóveda digital

Si no existe la carpeta .ssh en tu usuario de Windows, créala:

powershell

mkdir C:\Users\TuUsuario\.ssh

El problema de permisos en Windows: solución definitiva

Windows no es tan estricto como Linux por defecto, pero SSH sí. Los comandos mágicos:

powershell

icacls "C:\Users\TuUsuario\.ssh\mi_llave_secreta" /reset
icacls "C:\Users\TuUsuario\.ssh\mi_llave_secreta" /inheritance:r
icacls "C:\Users\TuUsuario\.ssh\mi_llave_secreta" /grant:r "$env:USERNAME:F"

Paso 5: Creación del Archivo Config para Perezosos Inteligentes

¿Cansado de escribir parámetros cada vez? Este archivo es tu nuevo mejor amigo.

¿Por qué este archivo te cambiará la vida?

Imagina tener que decirle a un taxi toda tu dirección cada vez, versus tener un chofer personal que ya la sabe. Eso es el archivo config.

Sintaxis que hasta tu abuela entendería

Crea C:\Users\TuUsuario\.ssh\config con:

text

Host mi-servidor
    HostName 192.168.1.100
    User tu_usuario
    IdentityFile C:\Users\TuUsuario\.ssh\mi_llave_secreta

Ahora solo escribes ssh mi-servidor y ¡magia!

Paso 6: Prueba de Conexión y Solución de Problemas

El momento de la verdad. ¿Funcionará a la primera?

El modo verbose: tu detective personal

Si algo falla, este comando te dice exactamente qué pasa:

powershell

ssh -vvv mi-servidor

Errores comunes y cómo solucionarlos en 5 minutos

  • «Bad permissions»: Los permisos de la clave en Windows están mal
  • «Permission denied»: La clave pública no está en authorized_keys
  • «Connection refused»: El servidor no tiene SSH activo

Configuración Avanzada: Nivel Pro

¿Ya funciona? Ahora vamos por el 110% de seguridad.

Deshabilitar contraseñas: seguridad nivel NSA

Una vez que confirmes que las claves funcionan, en el servidor:

bash

sudo nano /etc/ssh/sshd_config

Cambia PasswordAuthentication yes a no y reinicia con sudo systemctl restart sshd.

Agregar passphrase: el cinturón de seguridad extra

Si alguien roba tu clave, aún necesita una frase contraseña:

bash

ssh-keygen -p -f ~/.ssh/mi_llave_secreta

Mantenimiento y Buenas Prácticas

Como cualquier herramienta valiosa, necesita mantenimiento.

Backup de claves: tu plan de rescate

Guarda tus claves en un lugar seguro (no en el mismo servidor). Una USB en una caja fuerte es buena idea.

Rotación de claves: hábitos saludables

Cada 6-12 meses, genera nuevas claves. Es como cambiar las cerraduras de tu casa periódicamente.

Conclusión

Configurar SSH con claves parece complicado al principio, pero una vez que lo dominas, es como andar en bicicleta: nunca lo olvidas y te hace la vida infinitamente más fácil. No solo ganas seguridad, sino también velocidad y comodidad. ¿No vale la pena invertir una hora ahora para ahorrar cientos de horas después?

Preguntas Frecuentes: Lo que Todos Preguntan

¿Puedo usar la misma clave para múltiples servidores?
¡Absolutamente! Tu clave pública puede estar en tantos servidores como quieras. Es como hacer copias de tu cerradura para todas tus propiedades.

¿Qué pasa si pierdo mi clave privada?
Si no tienes backup, estás fuera. Pero puedes generar una nueva y reemplazar la clave pública en todos tus servidores. Por eso el backup es crucial.

¿Las claves SSH expiran?
No técnicamente, pero es buena práctica rotarlas periódicamente. Como la leche: tiene fecha de caducidad para tu propia seguridad.

¿Puedo tener diferentes claves para diferentes servidores?
¡Claro! Es como tener llaves diferentes para tu casa, oficina y auto. En el archivo config specifies qué clave usar para cada servidor.

¿Es seguro el archivo config en Windows?
Sí, siempre y cuando mantengas permisos restrictivos en toda la carpeta .ssh. Es tu bóveda digital: trátala como tal.