Cómo recuperar el acceso a tu repositorio de GitHub desde la terminal fácilmente
Git

Cómo recuperar el acceso a tu repositorio de GitHub desde la terminal fácilmente

15 Apr, 2026 • 5 min de lectura

A todos nos ha pasado: estás en medio de un flujo de trabajo espectacular, haces tu commit, te dispones a hacer un git push a tu repositorio privado y, de repente, ¡zas! El token de acceso o la contraseña ha caducado, y GitHub te deniega el acceso. Hace unos años, tocaba ir a los ajustes de GitHub, generar un Personal Access Token (PAT) interminable, copiarlo con cuidado y meterlo en la consola a mano. Un dolor.

Por suerte, ahora contamos con la línea de comandos oficial de GitHub (gh cli), y recuperar tu acceso es cuestión de segundos.

El comando salvavidas

Si has perdido el acceso a tu repositorio remoto, simplemente abre tu terminal (en mi caso, dentro del propio directorio del proyecto) y teclea este comando:

gh auth login -h github.com -p https -w

¿Qué hace exactamente este comando?

En lugar de pedirte tokens crípticos, este comando inicia un flujo amigable:

  • -h github.com: Especifica el host al que nos queremos conectar (en lugar de una instancia Enterprise).
  • -p https: Establecemos el protocolo por defecto a HTTPS para nuestras conexiones Git.
  • -w: ¡La verdadera magia! Le indica al CLI que queremos autenticarnos usando el navegador web (Web browser).

Al ejecutarlo, la terminal te proporcionará un Código de un único uso (One-time code) y te pedirá que presiones Enter. Al hacerlo, se abrirá tu navegador por defecto directamente en la página de GitHub.

Y aquí viene lo mejor: como probablemente ya tengas la sesión iniciada en tu navegador, solo tendrás que pegar ese pequeño código, confirmar el acceso, ¡y listo! Magia pura.

A continuación puedes ver cómo se ve el proceso en la terminal:

Terminal mostrando gh auth login


Behind the Scenes: ¿Cómo funciona esto técnicamente? (OAuth Device Flow)

Quizá te preguntes: “¿Cómo sabe exactamente la terminal que yo, a través del navegador, he validado la sesión?”

La respuesta es el OAuth 2.0 Device Authorization Grant (Flujo de Dispositivos de OAuth). Este es un estándar de seguridad diseñado precisamente para dispositivos que no tienen una interfaz rica o en los que no es seguro introducir una contraseña directamente (como una terminal, una Smart TV o un microcontrolador).

Aquí tienes el diagrama de flujo que explica lo que pasa entre bambalinas:

+------------+                               +-------------+
|            |--(1)- Demanda autorización -> |             |
| Terminal   |                               | Auth Server |
| (gh cli)   |<-(2)-- User Code e URL ------ | (GitHub)    |
+------------+                               +-------------+
      |
     (3) Pulsa Enter para abrir el navegador
      |
      v
+------------+                               +-------------+
|            |                               |             |
| Navegador  |--(4)-- Usuario se loguea y -> | Auth Server |
| (Web)      |        aprueba el código      | (GitHub)    |
+------------+                               +-------------+

+------------+                               +-------------+
| Terminal   |--(5)-- Polling (consulta) --> | Auth Server |
| (gh cli)   |<-(6)-- Access Token final --- | (GitHub)    |
+------------+                               +-------------+

Paso a paso:

  1. La Terminal pide permiso: Al ejecutar gh auth login, la CLI contacta a GitHub y le dice: “Oye, necesito acceder, y soy una terminal”.
  2. GitHub devuelve el reto: El servidor de GitHub responde con una URL de verificación (ej. https://github.com/login/device) y un código de usuario único (el que copiaste).
  3. Se abre la interfaz gráfica: Como la terminal no puede renderizar la página de login de forma amigable, abre Firefox o Chrome.
  4. Validación Segura: Introduces el código en la web y autorizas desde tu sesión ya iniciada. La seguridad radica en que GitHub sabe que el usuario “humano” está dando el visto bueno al código generado.
  5. Polling constante: Mientras tú hacías todo eso en el navegador, la terminal no estaba dormida. Estaba en un bucle preguntando a GitHub por detrás: “¿Ya ha validado el código? ¿Y ahora? ¿Y ahora?”.
  6. Token concedido: Cuando firmas en la web, GitHub cambia el estado de esa petición a “Aprobado”. La próxima vez que la terminal pregunte (en fracción de segundos), GitHub le entregará un Access Token invisible que se guardará de forma segura en tus credenciales del sistema, reestableciendo tu acceso Git.

¡Y así de fácil vuelve todo a la normalidad! Nada supera la comodidad de la CLI combinada con la seguridad de tu sesión web habitual.