PureTools

Claves SSH: Genera, Configura y Gestiona Como un Pro

PureTools Team· 7 min de lectura
Claves SSH: Genera, Configura y Gestiona Como un Pro

Claves SSH: Deja de Escribir Contraseñas

Las claves SSH reemplazan la autenticación por contraseña con pares de claves criptográficas. Mantienes la clave privada en tu máquina, pones la clave pública en el servidor (o GitHub), y nunca escribes una contraseña de nuevo. Es más seguro y más conveniente.

Generar una Clave

# Ed25519 (recomendado — rápido, seguro, claves cortas)
ssh-keygen -t ed25519 -C "tu@email.com"

# RSA (compatibilidad legada, si Ed25519 no es soportado)
ssh-keygen -t rsa -b 4096 -C "tu@email.com"

Te preguntará ubicación y passphrase. Usa la ubicación por defecto (~/.ssh/id_ed25519) y siempre define una passphrase — protege la clave si tu máquina es comprometida.

Agregar a GitHub

# Copiar clave pública al clipboard
# macOS
pbcopy < ~/.ssh/id_ed25519.pub

# Linux
xclip -selection clipboard < ~/.ssh/id_ed25519.pub

# Windows
cat ~/.ssh/id_ed25519.pub | clip

Ve a GitHub → Settings → SSH and GPG keys → New SSH key. Pega. Prueba:

ssh -T git@github.com
# Hi username! You've been successfully authenticated

SSH Agent (No Reescribas Tu Passphrase)

# Iniciar el agente
eval "$(ssh-agent -s)"

# Agregar tu clave (pide passphrase una vez)
ssh-add ~/.ssh/id_ed25519

# macOS: agregar al Keychain (persiste entre reboots)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

El Archivo SSH Config

El poder real. Crea ~/.ssh/config:

# GitHub personal
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

# GitHub del trabajo (cuenta diferente)
Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

# Servidor de producción
Host prod
  HostName 203.0.113.42
  User deploy
  IdentityFile ~/.ssh/id_ed25519
  Port 2222

# Jump host (bastion)
Host internal-db
  HostName 10.0.1.50
  User admin
  ProxyJump bastion

Host bastion
  HostName bastion.example.com
  User admin
  IdentityFile ~/.ssh/id_ed25519

Ahora en vez de ssh deploy@203.0.113.42 -p 2222 -i ~/.ssh/id_ed25519, solo escribe ssh prod.

Para el GitHub del trabajo, clona con: git clone git@github-work:empresa/repo.git

Copiar Clave al Servidor

# La forma fácil
ssh-copy-id user@servidor

# Forma manual
cat ~/.ssh/id_ed25519.pub | ssh user@servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

# Corregir permisos (si el login falla)
ssh user@servidor "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Tipos de Clave Comparados

TipoTamañoSeguridadCompatibilidad
Ed25519256 bits (fijo)ExcelenteOpenSSH 6.5+ (2014)
RSA 40964096 bitsBuenaUniversal
ECDSA256/384/521 bitsBuenaOpenSSH 5.7+
DSA1024 bitsDeprecadoNo uses

Consejos de Seguridad

  • Siempre usa passphrase en la clave privada.
  • Nunca compartas o commitees tu clave privada. El archivo sin .pub es privado.
  • Usa claves diferentes para servicios diferentes (GitHub personal, trabajo, servidores).
  • Deshabilita auth por contraseña en servidores después de configurar SSH keys: PasswordAuthentication no en /etc/ssh/sshd_config.
  • Rota claves periódicamente, especialmente cuando miembros del equipo se van.

Genera claves: Generador de Contraseñas — crea passphrases fuertes para tus claves SSH.