SSH

Para crear un par de claves SSH y configurar tu servidor para permitir el acceso sin contraseña, sigue estos pasos:
1. Generar clave SSH (equipo local)
Ejecuta el siguiente comando para generar una clave RSA (recomendado usar ed25519 si tu servidor lo soporta):
ssh-keygen -t ed25519 -f $HOME/~/.ssh/id_rsa_testid_ed25519_test -N ""
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 -i $HOME/~/.ssh/id_rsa_test.id_ed25519_test.pub usuario@ip_host_destino
Si ssh-copy-id no está disponible, puedes hacerlo manualmente. Copia el contenido de la clave pública sobre el directorio
3. Verificar el acceso sin contraseña
Intenta conectarte al servidor:
ssh -i $HOME/~/.ssh/id_rsa_testid_ed25519_test usuario@ip_host_destino
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"
-
-fespecifica el nombre del archivo (ejemplo:~/.ssh/nombre_clave). -
-Ces 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.
3. Configura ~/.ssh/config para usar claves específicas
Crea o edita el archivo ~/.ssh/config para asignar claves a cada servidor:
Ejemplo de configuración:
# Conexión al Servidor 1
Host servidor1 # (Alias para el comando SSH, ej: `ssh servidor1`)
HostName 192.168.1.100 # IP del servidor
User usuario1 # Usuario remoto
IdentityFile ~/.ssh/id_ed25519_servidor1 # Clave privada asignada
# Conexión al Servidor 2 usando IP y puerto personalizado
Host servidor2
HostName 203.0.113.45 # IP pública del servidor
User admin
Port 2222 # Si el servidor usa un puerto distinto al 22
IdentityFile ~/.ssh/id_rsa_servidor2
-
Host: Un alias para el servidor (ejemplo:ssh servidor1). -
HostName: La IP o dominio real del servidor. -
User: El usuario remoto. -
IdentityFile: La clave privada que debe usarse.