Gestión de claves SSH y acceso seguro

SSH cifra un shell remoto o una copia de un archivo. Las claves reemplazan las contraseñas repetidas: una clave privada permanece en su máquina; el servidor almacena la mitad pública. Esta lección cubre la generación de claves, "claves_autorizadas", agentes y errores como el reenvío.

Widgets: tabla de comparación contrasta la contraseña con la autenticación de clave para cuestiones de operaciones. El gráfico muestra dónde se almacena la confianza (clave privada del cliente frente a claves_autorizadas del servidor). Explorador de código recorre keygen → instalar → permisos → agente. Código con pestañas cubre la configuración de múltiples hosts y la confianza de la clave del host.

Contraseña vs clave pública
Las filas se asignan a amenazas y operaciones: las claves escalan la automatización; las contraseñas escalan la memorización humana únicamente.
Contraseñapar de claves SSH
Fuerza bruta / fumigaciónVulnerable a adivinar y reutilizar entre sitiosEd25519/RSA espacio clave; combinar con PasswordAuthentication no en servidores
Automatización / CITienta a incrustar secretos; El Ministerio de Asuntos Exteriores rompe los flujos no interactivosCI utiliza claves de implementación o certificados de corta duración; Ansible utiliza ssh-agent o sshpass (evitar)
Rotación/revocaciónCambie la contraseña en todos los lugares donde se reutilizóRotar par de claves: agregar una nueva clave pública, verificar el inicio de sesión, eliminar la línea anterior de las claves_autorizadas
AuditoríaEs difícil probar qué humano usó la cuenta compartidaComentarios por clave en claves_autorizadas; claves por host en la configuración
Modelo de confianza

Gráfico: el centro es sshd. Su clave privada nunca sale de la computadora portátil; solo firma un desafío. El servidor solo vio la línea pública copiada en claves_autorizadas. El compromiso del servidor no filtra su archivo de clave privada del disco (a menos que reenvíe al agente imprudentemente).

Nodos de clic: la computadora portátil contiene material de clave privada; El archivo del servidor Authorized_keys enumera las claves públicas permitidas: una línea por clave, puede incluir los prefijos from="10.0.0.*" o command="..." para force-command.
sshd en el servidor
💻Tu computadora portátil
🔐~/.ssh/id_ed25519
📋~/.ssh/claves_autorizadas
Comandos cotidianos
El orden importa: generar → instalar pubkey → arreglar permisos → cargar en el agente. Un chmod incorrecto en ~/.ssh es la razón número uno por la que la autenticación de clave pública "falla silenciosamente".
bash
1
ssh-keygen -t ed25519 -C "you@example.com"
2
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
3
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
4
eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_ed25519
Archivo de configuración para muchos hosts
Alias y claves
sshconfig
Host prod
  HostName 10.0.1.50
  User deploy
  IdentityFile ~/.ssh/prod_ed25519
  ServerAliveInterval 60

Reenvío de agentes: úselo con moderación

ssh -A salta a través de bastiones pero expone a su agente al control remoto; la raíz maliciosa en un salto podría usar sus claves. Prefiera ProxyJump en ~/.ssh/config en su lugar.
ProxyJump: ssh -J bastion app.internal
Proteja las claves privadas con tokens de hardware (FIDO2) para un acceso de alto valor.
Nunca envíe claves privadas a Git; use administradores secretos o credenciales de corta duración en CI.