← Volver al blog
SSHGitHubWindows

Cómo configurar SSH en Windows para usar con GitHub

Genera una clave SSH, registra la pública en GitHub y deja de escribir contraseña en cada push. Guía paso a paso en Windows, con los errores más comunes.

MA
Allen87Data Engineer
· 4 min de lectura
Panel de terminal con el comando ssh-keygen -t ed25519 sobre fondo oscuro

SSH (Secure Shell) permite acceder a servidores y comunicarte con GitHub mediante una conexión cifrada, sin escribir usuario y contraseña en cada git push. En esta guía creas una clave SSH en Windows, la registras en GitHub y pruebas la conexión. Si todavía no instalaste ni configuraste Git, empieza por el artículo anterior.

Cómo funciona, en una frase

Generas un par de claves: la privada, que queda solo en tu computadora, y la pública, que le entregas a GitHub. Quien tiene la pública puede comprobar que tú tienes la privada, sin que esta salga jamás de tu máquina.

Atención: la clave que va a GitHub es siempre la de extensión .pub. El archivo sin extensión es la clave privada: nunca copies, envíes ni publiques su contenido.

1. Genera la clave

Abre Git Bash (o PowerShell) y escribe:

ssh-keygen -t ed25519 -C "tucorreo@ejemplo.com"
  • -t ed25519 elige el algoritmo recomendado actualmente: las claves son más pequeñas y rápidas que las RSA, que eran el estándar en guías antiguas.
  • -C es solo un comentario para reconocer la clave más adelante. El correo es una buena opción.

El comando hace dos preguntas:

  1. Dónde guardarla: presiona Enter para aceptar el valor por defecto (C:\Users\TuUsuario\.ssh\id_ed25519).
  2. Passphrase: una contraseña que protege la clave. Te recomiendo definir una: si alguien copia el archivo, no le sirve sin la contraseña. Para no escribirla a cada rato, usa el paso siguiente.

Al final, la carpeta .ssh tendrá dos archivos: id_ed25519 (privada) y id_ed25519.pub (pública).

Si tu guía o sistema todavía exige RSA, usa ssh-keygen -t rsa -b 4096 -C "tucorreo@ejemplo.com". Los archivos se llamarán id_rsa e id_rsa.pub.

2. Carga la clave en ssh-agent

ssh-agent guarda la clave desbloqueada en memoria, así escribes la passphrase una sola vez por sesión. En Windows viene desactivado. Abre PowerShell como administrador y ejecuta:

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent

Después, en una terminal común, agrega la clave:

ssh-add $env:USERPROFILE\.ssh\id_ed25519

3. Copia la clave pública

Muestra el contenido del archivo .pub y copia todo, de la primera a la última letra:

cat ~/.ssh/id_ed25519.pub

En PowerShell, el comando equivalente es Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub. Empieza con ssh-ed25519 y termina con tu comentario.

4. Registra la clave en GitHub

  1. En GitHub, haz clic en tu foto, en la esquina superior derecha, y elige Settings.
  2. En el menú lateral, abre SSH and GPG keys.
  3. Haz clic en New SSH key.
  4. En Title, escribe un nombre que identifique la computadora (por ejemplo, "Portátil personal").
  5. En Key type, deja Authentication Key y pega la clave pública en Key.
  6. Haz clic en Add SSH key. GitHub puede pedirte la contraseña para confirmar.

5. Prueba la conexión

ssh -T git@github.com

La primera vez, SSH pregunta si confías en el servidor y muestra una huella digital (fingerprint). Comprueba que coincida con la lista oficial de GitHub y responde yes.

Si todo está bien, verás algo como:

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

Ese mensaje es el éxito esperado: GitHub reconoció tu clave, solo que no ofrece una terminal.

6. Descarga un repositorio

En GitHub, abre un repositorio tuyo, haz clic en Code, elige la pestaña SSH y copia la dirección, que tiene este formato:

git@github.com:tuusuario/nombre-del-repositorio.git

En la carpeta donde guardas tus proyectos, abre Git Bash y ejecuta:

git clone git@github.com:tuusuario/nombre-del-repositorio.git

Si el repositorio se descarga sin pedir la contraseña de la cuenta, la configuración está funcionando.

Si algo sale mal

  • Permission denied (publickey): GitHub no reconoció la clave. Comprueba que pegaste el contenido del archivo .pub (y no el de la privada), que ssh-agent está corriendo y que la clave fue agregada, con ssh-add -l.
  • ssh-add dice que el agente no está en ejecución: repite el paso 2 en un PowerShell como administrador.
  • Más de una clave: si tienes claves para otros servicios, usa un archivo ~/.ssh/config para indicar cuál usar en cada host.

Buenas prácticas

  • Usa una clave por computadora, para poder revocar solo la de un equipo perdido.
  • Define una passphrase y mantén el ssh-agent.
  • Nunca versiones, envíes ni pegues la clave privada en ningún lugar.
  • Revisa de vez en cuando las claves en Settings → SSH and GPG keys y elimina las que ya no uses.
MA
Allen87 Data Engineer & Data Analyst

Escribo sobre Power BI, ingeniería de datos e IA aplicada. Mira el perfil completo, los 66 dashboards de Power BI publicados y GitHub.