Configuracion‐SSH - ErMonV/Git-GitHub-Notes GitHub Wiki

🔐 Configuración Completa de Git con Autenticación SSH para GitHub

Antes de Usar GitHub la configuración SSH es obligatoria. Esto te permitirá interactuar con repositorios privados en GitHub (o hacer push/pull de forma segura) mediante autenticación SSH.

Para más información visita Configuración de Git y Generación de una nueva clave SSH y adición al agente SSH

🔑 Configuración de Claves SSH (Todos los Sistemas)

1. Verificar si ya tienes claves SSH existentes

🐚 PowerShell/🖥️ Git Bash:

ls ~/.ssh/id_*

💻CMD:

dir %USERPROFILE%\.ssh\id_*.pub

Si ves archivos como id_ed25519.pub o id_rsa.pub ya tienes claves y no necesitas generarlas. Puedes saltar al paso 3.

2. Generar nueva clave SSH (Elige tu sistema)

🐚 PowerShell:

ssh-keygen -t ed25519 -C "[email protected]"
# Presiona Enter 3 veces (sin contraseña)

🖥️ Git Bash:

ssh-keygen -t ed25519 -C "[email protected]"

O si tu sistema no soporta Ed25519:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

💻 CMD:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

3. Iniciar el ssh-agent y agregarle tu clave

Windows (🐚 PowerShell/💻 CMD):

# Configurar el servicio para que se inicie automáticamente
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent

# Agregar clave: En una terminal normal (no como administrador)...

#    Opción 1 (con comillas)
ssh-add "$HOME\.ssh\id_ed25519"

#    Opción 2 (ruta absoluta)
ssh-add C:\Users\TU_USUARIO\.ssh\id_ed25519

#    Opción 3 (usando Resolve-Path)
ssh-add (Resolve-Path ~\.ssh\id_ed25519).Path

🖥️ Git Bash:

# Configurar el servicio para que se inicie automáticamente
eval "$(ssh-agent -s)"

# Agregar clave: En una terminal normal (no como administrador)...

# Opción 1 (ruta relativa)
ssh-add ~/.ssh/id_ed25519

# Opción 2 (ruta absoluta - reemplaza TU_USUARIO)
ssh-add /c/Users/TU_USUARIO/.ssh/id_ed25519

# Opción 3 (escapando espacios si los hay)
ssh-add "$HOME/.ssh/id_ed25519"

4. Copiar clave pública al portapapeles

🐚 PowerShell:

#Opción recomendada
Get-Content ~/.ssh/id_ed25519.pub | Set-Clipboard

#Opción alternativa
cat ~\.ssh\id_ed25519.pub | clip

🖥️ Git Bash:

cat ~/.ssh/id_ed25519.pub | clip

💻 CMD:

type %USERPROFILE%\.ssh\id_rsa.pub | clip

(Copia manualmente la salida que comienza con ssh-ed25519...)

5. 🔗 Vincular Clave SSH con GitHub

  • Ve a GitHub.com > Settings > SSH and GPG keys o haz click aquí.

  • Haz clic en "New SSH Key"

  • Pega tu clave pública (que copiaste antes)

  • Dale un nombre descriptivo (ej: "Portátil Personal")

  • Haz clic en "Add SSH Key"

6. 🧪 Probar la Conexión SSH

ssh -T [email protected]

La primera vez que te conectes te aparecerá un mensaje como este:

The authenticity of host 'github.com (140.82.112.3)' can't be established. ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?

Qué está pasando:

  1. GitHub te está presentando su "huella digital" (fingerprint) para que verifiques que realmente estás conectándote al servidor correcto (y no a uno malicioso)

  2. El fingerprint que muestra (SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU) es el correcto para github.com

Qué debes hacer:

  1. Verifica que el fingerprint coincida con el oficial de GitHub:
    • El que ves debe coincidir exactamente con: SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
  2. Escribe yes y presiona Enter para continuar (solo esta primera vez)

Qué pasará después:

  • El sistema guardará este fingerprint en ~/.ssh/known_hosts para futuras conexiones
  • Verás un mensaje como:
    Hi [tu_usuario]! You've successfully authenticated, but GitHub does not provide shell access.
    

(Esto confirma que tu conexión SSH está funcionando correctamente)

7. 🚀 Configura tu Repositorio para Usar SSH

Después de esto, cuando clones un repositorio, usa la URL SSH (no HTTPS). Para repositorios nuevos:

git clone [email protected]:usuario/repositorio.git

Para repositorios existentes (cambiar de HTTPS a SSH):

git remote set-url origin [email protected]:usuario/repositorio.git