Skip to main content

SSH

image.png

Para crear un par de claves SSH y configurar tu servidor para permitir el acceso sin contraseña, sigue estos pasos:


1. Generar el par de claves SSH (equipo local)

Ejecuta el siguiente comando para generar una clave RSA (recomendado usar ed25519 si tu servidor lo soporta):

ssh-keygen -t ed25519 -C "tu_email@ejemplo.com"
  • Te preguntará dónde guardar la clave (presiona Enter para la ubicación predeterminada: ~/.ssh/id_ed25519 

  • Si quieres, puedes añadir una frase de contraseña (opcional, pero recomendada para mayor seguridad).

2. Copiar la clave pública al servidor

Usa ssh-copy-id para copiar automáticamente tu clave pública al servidor:

ssh-copy-id usuario@tuserver.com

Si ssh-copy-id no está disponible, puedes hacerlo manualmente:

cat ~/.ssh/id_ed25519.pub | ssh usuario@tuserver.com "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3. Verificar el acceso sin contraseña

Intenta conectarte al servidor:

ssh usuario@tuserver.com

4. (Opcional) Deshabilitar el acceso por contraseña

Para mayor seguridad, en el servidor (/etc/ssh/sshd_config), configura:

PasswordAuthentication no
ChallengeResponseAuthentication no

Luego reinicia el servicio SSH:

sudo systemctl restart sshd

Pasos para configurar múltiples claves SSH

1. Genera claves adicionales

Ejecuta ssh-keygen para cada nueva clave, dándoles nombres distintos:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_servidor1 -C "clave_para_servidor1"
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_servidor2 -C "clave_para_servidor2"
  • -f especifica el nombre del archivo (ejemplo: ~/.ssh/nombre_clave).

  • -C es un comentario (opcional, pero útil para identificar la clave).


2. Copia las claves públicas a los servidores

Usa ssh-copy-id con la opción -i para especificar la clave pública:

ssh-copy-id -i ~/.ssh/id_ed25519_servidor1.pub usuario@servidor1.com
ssh-copy-id -i ~/.ssh/id_rsa_servidor2.pub usuario@servidor2.com

Si no tienes ssh-copy-id, copia manualmente el contenido de .pub al ~/.ssh/authorized_keys del servidor.