2 abril, 2025

Acceso Seguro con Claves SSH

La autenticación mediante claves SSH es una de las formas más seguras y convenientes de conectarse a un servidor remoto sin necesidad de ingresar una contraseña manualmente en cada inicio de sesión. En este artículo, aprenderás a configurar el acceso SSH sin contraseña utilizando ssh-keygen y ssh-copy-id.


🔹 ¿Por qué usar autenticación con claves SSH?

Cuando nos conectamos a un servidor mediante ssh user@servidor, normalmente se solicita la contraseña del usuario remoto. Sin embargo, esto puede ser poco práctico y menos seguro en entornos donde se necesitan múltiples conexiones o automatización.

El uso de claves SSH permite:

✔ Mayor seguridad.
✔ Autenticación sin contraseña.
✔ Automatización de tareas sin intervención del usuario.

Para lograrlo, seguiremos estos tres pasos clave.


1️⃣ Generar un Par de Claves SSH

Antes de conectar sin contraseña, es necesario generar una clave pública y una clave privada en nuestra máquina local.

Ejecuta el siguiente comando:

ssh-keygen -t rsa

Explicación de los parámetros:

  • ssh-keygen: Herramienta para generar claves SSH.
  • -t rsa: Especifica que la clave se generará con el algoritmo RSA.

🔹 Salida esperada:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): [Presiona Enter]
Enter passphrase (empty for no passphrase): [Opcional]
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.

💡 Importante:

  • Se generan dos archivos en ~/.ssh/:
    • id_rsa: Clave privada (¡No la compartas!).
    • id_rsa.pub: Clave pública (Se debe copiar al servidor).

2️⃣ Copiar la Clave Pública al Servidor

Una vez generada la clave pública, debemos enviarla al servidor remoto para que nos permita autenticarnos sin contraseña.

Ejecuta:

ssh-copy-id user@servidor

Explicación de los parámetros:

  • ssh-copy-id: Herramienta para copiar la clave pública.
  • user@servidor: Usuario y dirección del servidor.

🔹 Salida esperada:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
user@servidor's password: [Ingresar contraseña aquí]
Number of key(s) added: 1
Now try logging into the machine with: "ssh user@servidor"

💡 Este proceso copia la clave en /home/user/.ssh/authorized_keys en el servidor remoto.


3️⃣ Probar la Conexión sin Contraseña

Una vez que la clave está en el servidor, prueba iniciar sesión sin ingresar la contraseña:

ssh user@servidor

Si todo está bien, la conexión se establecerá sin solicitar credenciales.


🛠 Solución a Problemas Comunes

Si la autenticación con clave SSH no funciona, revisa lo siguiente:

  1. Verifica los permisos de la carpeta SSH en el servidor: chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
  2. Habilita la autenticación por clave en el servidor (/etc/ssh/sshd_config): PubkeyAuthentication yes Luego, reinicia el servicio SSH: sudo systemctl restart ssh
  3. Asegúrate de que el archivo authorized_keys contiene correctamente la clave pública.

🎯 Conclusión

Usar autenticación con claves SSH permite una conexión más segura y eficiente a servidores remotos. Con solo tres comandos, puedes configurar un acceso sin contraseña:

ssh-keygen -t rsa
ssh-copy-id user@servidor
ssh user@servidor

💡 Con este método, evitas ingresar contraseñas manualmente y mejoras la seguridad de tus conexiones SSH.


✅ ¡Ya estás listo para trabajar de forma segura con SSH sin contraseña! 🚀

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *