Cómo crear una llave SSH para GitHub y subir tus proyectos sin errores (2026)

¿Intentaste subir tu proyecto a GitHub y te apareció un error que dice el “método de autenticación no está soportado”? No estás solo – es uno de los errores más comunes cuando empezás a usar Git. En esta guía te explico paso a paso cómo crear y configurar una llave SSH, que es el método de autenticación utilizado por GitHub para que puedas subir y bajar tus proyectos sin problemas. Para seguir esta guía necesitas tener Git instalado en tu PC con Windows y contar con una cuenta de GitHub.

¿Qué es SSH y cómo funciona?

SSH significa Secure Shell – es un protocolo que permite la comunicación segura y cifrada entre dos dispositivos. En el caso de GitHub, lo usamos para que tu computadora y los servidores de GitHub puedan reconocerse sin necesidad de escribir una contraseña cada vez.

Para lograr eso, SSH usa un sistema de dos llaves: una pública y una privada. Pensalo de la siguiente manera – la llave pública es como un candado que vos fabricás y le das a GitHub. La llave privada es la única llave que abre ese candado, y se queda en tu PC. Cuando intentás conectarte, GitHub verifica que tu llave privada abra el candado que tiene guardado, si lo abre podés pasar.

La regla más importante es la siguiente: la llave privada nunca se comparte, nunca se sube a ningún lado, nunca se envía por ningún medio. La llave pública por el contrario podés compartirla sin problema, por ese motivo es que existe.

Con SSH podés conectarte a servidores, clonar repositorios privados, subir y bajar código, y gestionar accesos de forma remota y segura.

Verificamos si hay llaves creadas

Paso 1 – Abrir Git Bash

Vas al icono de Windows, buscás “Git bash” y haces clic. Se abrirá una pantalla negra similar al CMD de Windows. Pero diferente, Git bash emula el entorno Unix que usa SSH de forma nativa.

Paso 2 – Verificar si hay llaves creadas

Antes de crear llaves nuevas,verificamos que no haya llaves SSH existentes en la computadora, para ello ejecutá el siguiente comando. Para lista el contenido de la carpeta ssh.

ls -al ~/.ssh
Comando¿Qué hace?
lsLista archivos y carpetas de un directorio.
-aIncluye en la lista los archivos y carpetas ocultos. Aparecen con un punto antes del nombre.
-lMuestra el formato largo que incluye permisos, propietario, fecha y tamaño.
~/Es un atajo para referirse a la carpeta personal. Ej: /home/nombre-usuario/

Sino hay llaves creadas, va a aparecer algo similar a esto.

drwxr-xr-x 1 vboxuser 197121 0 Apr 13 03:27 ./
drwxr-xr-x 1 vboxuser 197121 0 Apr 13 03:27 ../

Creando las llaves SSH

Paso 3 – Crear las llaves SSH

Desde marzo del 2022, GitHub recomienda crear llaves usando el algoritmo ed25519 por su seguridad y fiabilidad.

Enlace: GitHub recomienda ed25519 desde 2022

Ingrese el siguiente comando remplazando este email por el email de tu cuenta de GitHub.

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

Va aparecer el siguiente mensaje.

Generating public/private ALGORITHM key pair.

Te va a aparecer el siguiente mensaje preguntando dónde quieres guardarlas. Presioná “enter” para aceptar la ruta por defecto.

Enter file in which to save the key (/C/user/nombre-PC/.ssh/id_ed25519): [presiona enter]

Luego, te solicitará que agregues una passphrase (contraseña) y vuelvas a repetirla.

Enter passphrase (Empty for no passphrase): [Ingresar la contraseña frase]
Enter same passphrase again: [volvé a ingresar la contraseña frase]

¿Qué es un passphrase y en que se diferencia de una contraseña? Es una frase o secuencia de palabras que funciona como contraseña para proteger tu llave privada. Se diferencia de una contraseña porque admite hasta 64 caracteres, puede incluir espacios y al ser más larga son difíciles de adivinar.

Si las llaves se generaron correctamente aparecerá algo así:

Your identification has been saved in /C/user/nombre-PC/.ssh/id_ed25519
Your public key has been saved in /C/user/nombre-PC/.ssh/id_ed25519.pub

The key fingerprint is:
SHA256:Oncorn/froc49chnwcrkncDIE9cjbdvcf/RSz tu_email@ejemplo.com
The key's randomart image is:
+--[ED25519 256]--+
|   .+B+          |
|     ++.         |
|.   .o    .  o   |
|... o      E o   |
|..o=      S++    |
|.O+.   .O=O      |
|..O   .OOOO      |
|.OOOO.O..+..     |
|O++OO++O+O+      |
+----[SHA256]-----+

Paso 4 – Agregar la llave privada al agente SSH

¿Qué es el agente SSH? – Es un programa auxiliar que corre en segundo plano y gestiona tus llaves SSH en memoria, manteniéndolas cifradas para que no tengas que ingresarlas cada vez que te conectás.

Iniciá el agente con este comando.

eval $(ssh-agent -s)

Debe aparecer.

Agent pid 409

El número pid varía porque toma el número de ejecución que le asigna la computadora. Lo importante es que aparezca.

Ahora, agregá tu llave privada al agente con el siguiente comando.

ssh-add ~/.ssh/id_ed25519

Te va a solicitar la passphrase que pusiste en el ítem 3.

Enter passphrase for /C/user/nombre-PC/.ssh/id_ed25519:

Si se agregó correctamente saldrá el siguiente mensaje.

Identity added: /C/user/nombre-PC/.ssh/id_ed25519 (tu_email@ejemplo.com)

Paso 5 – Copiar la llave pública

Ejecutá este comando para copiar la llave pública al portapapeles:

clip < ~/.ssh/id_ed25519.pub

clip copia el contenido del archivo al portapapeles. El archivo termina en .pub esa es la llave pública, la que le vas a dar a GitHub. Tu llave pública tiene este formato:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGk7DxnRe3Lkh9P2mQvZTb4Wf8XoNcYuJsAi6HqE9tRm tu_email@ejemplo.com

Paso 6 – Agregar la llave pública a GitHub

Vas a entrar a tu cuenta de github poniendo tu usuario y contraseña.

En la parte superior derecha, hace clic donde está la foto de perfil y se te va a desplegar un menú de navegación, presioná en “configuraciones” (Settings).

Te llevará a la página de configuración, allí en el menú de navegación que está en el lado derecho, seleccioná “llaves SSH y GPG” (SSH and GPG keys).

Luego, apretá en el botón nueva llave SSH (New SSH keys).

Donde dice titulo (title) agregá titulo descriptivo para reconocer de qué dispositivo es la llave, en tipo de llave (Key type) lo dejas como está y en la sección llave (key) pegás el código de la llave que guardaste en el portapapeles. Le das a agregar llave SSH (Add SSH key).

Si todo sale bien te llevará a la pantalla anterior.

Te mostrará la llave de la siguiente manera.

Paso 7 – Verificamos que todo salió bien

Ejecutá este comando para confirmar que la conexión está funcionando

ssh -T git@github.com

Deberás ver.

Hi tunombredeusuario! You've successfully authenticated, but Github does not provide shell access.

El mensaje “does not provide shell access” es normal, no es un error. Significa que la autenticación fue exitosa.

Si llegaste hasta acá ¡Felicidades lo has logrado!. No es fácil y muchos no saben cómo hacerlo.

Errores comunes y cómo resolverlos

  • Error 1: “Permission denied (publickey)” – significa que la llave no está agregada al agente o que la llave pública no está en GitHub. Solución: repetir los pasos 4 y 5
  • Error 2: el agente SSH no arranca en Windows – Solución: verificar que Git Bash esté actualizado
  • Error 3: copiaron la llave con un espacio o salto de línea al final – la llave tiene que copiarse exactamente, sin espacios adicionales al principio ni al final

Conclusión

En esta guía tuviste una primera aproximación a un entorno Linux/Unix gracias a la terminal de Git Bash. También aprendiste a crear llaves SSH — un conocimiento que va mucho más allá de GitHub y que te va a permitir conectarte de forma segura a servidores, servicios en la nube, y entornos de trabajo colaborativo. Y sobre todo, ya podés subir y bajar proyectos de GitHub sin que la autenticación sea un obstáculo.