Saltar al contenido principal

Configuración de llaves SSH

Esta guía te mostrará cómo configurar llaves SSH en tu computadora y agregarlas a GitHub para autenticación segura.

Configurar tu llave SSH en tu computadora

Paso 1: Verificar si ya tienes llaves SSH

Antes de crear una nueva llave, verifica si ya tienes una:

ls -la ~/.ssh/

Si ves archivos como id_ed25519 y id_ed25519.pub (o id_rsa y id_rsa.pub), ya tienes llaves SSH configuradas.

Paso 2: Generar una nueva llave SSH

Opción recomendada: Ed25519 (más segura y rápida)

ssh-keygen -t ed25519 -C "tu_email@ejemplo.com"

Para sistemas antiguos: RSA

Si tu sistema no soporta Ed25519, usa RSA:

ssh-keygen -t rsa -b 4096 -C "tu_email@ejemplo.com"

Durante el proceso te preguntará:

  1. Ubicación del archivo: Presiona Enter para usar la ubicación predeterminada
  2. Passphrase: Ingresa una contraseña segura (recomendado) o presiona Enter para no usar passphrase
> Generating public/private ed25519 key pair.
> Enter a file in which to save the key (/Users/TU_USUARIO/.ssh/id_ed25519): [Presiona Enter]
> Enter passphrase (empty for no passphrase): [Escribe tu passphrase]
> Enter same passphrase again: [Repite tu passphrase]

Paso 3: Agregar tu llave al SSH Agent

En macOS:

  1. Inicia el ssh-agent:
eval "$(ssh-agent -s)"
  1. Configura el archivo ~/.ssh/config:
touch ~/.ssh/config
  1. Edita el archivo de configuración:
open ~/.ssh/config

Agrega el siguiente contenido:

Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
  1. Agrega tu llave privada al ssh-agent:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

En Linux:

  1. Inicia el ssh-agent:
eval "$(ssh-agent -s)"
  1. Agrega tu llave privada:
ssh-add ~/.ssh/id_ed25519

En Windows:

  1. Inicia el ssh-agent (en PowerShell como administrador):
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
  1. Agrega tu llave privada (en terminal normal):
ssh-add c:/Users/TU_USUARIO/.ssh/id_ed25519

Agregar tu llave SSH a GitHub

Paso 1: Copiar tu llave pública

En macOS:

pbcopy < ~/.ssh/id_ed25519.pub

En Linux:

cat ~/.ssh/id_ed25519.pub
# Selecciona y copia el contenido mostrado

En Windows:

clip < ~/.ssh/id_ed25519.pub

Paso 2: Agregar la llave a tu cuenta de GitHub

  1. Ve a GitHub.com y inicia sesión en tu cuenta

  2. Accede a la configuración:

    • Haz clic en tu foto de perfil (esquina superior derecha)
    • Selecciona "Settings"
  3. Navega a SSH Keys:

    • En la barra lateral izquierda, haz clic en "SSH and GPG keys"
  4. Agrega una nueva llave:

    • Haz clic en "New SSH key" o "Add SSH key"
  5. Completa la información:

    • Title: Dale un nombre descriptivo (ej: "MacBook Personal", "Laptop de trabajo")
    • Key type: Selecciona "Authentication Key"
    • Key: Pega tu llave pública copiada anteriormente
  6. Guarda la llave:

    • Haz clic en "Add SSH key"
    • Es posible que te pida confirmar con tu contraseña de GitHub

Paso 3: Verificar la configuración

Prueba tu conexión SSH con GitHub:

ssh -T git@github.com

Deberías ver un mensaje como:

> Hi tu_usuario! You've successfully authenticated, but GitHub does not provide shell access.

Paso 4: Configurar repositorios para usar SSH

Para repositorios nuevos, clona usando SSH:

git clone git@github.com:usuario/repositorio.git

Para repositorios existentes que usan HTTPS, cambia la URL:

git remote set-url origin git@github.com:usuario/repositorio.git

Usar GitHub CLI (Alternativa)

Si tienes GitHub CLI instalado, puedes agregar tu llave SSH más fácilmente:

# Instalar GitHub CLI (macOS)
brew install gh

# Autenticarse
gh auth login

# Agregar llave SSH
gh ssh-key add ~/.ssh/id_ed25519.pub --title "Mi Computadora"

Troubleshooting Común

Error: "Permission denied (publickey)"

  • Verifica que el ssh-agent esté ejecutándose
  • Confirma que agregaste la llave al ssh-agent
  • Verifica que la llave pública esté en tu cuenta de GitHub

Error: "ssh-add: illegal option -- apple-use-keychain"

En versiones antiguas de macOS, usa:

ssh-add -K ~/.ssh/id_ed25519

Verificar qué llaves están cargadas

ssh-add -l