Git

"gh auth login": "The value of the --hostname flag must be a hostname" y otros errores CLI de GitHub

17 Jul, 2026 • 8 min de lectura

Si ya usas gh (la CLI oficial de GitHub) para autenticarte desde terminal, es probable que en algún momento te hayas topado con este error al intentar automatizar el login o al pasar mal un parámetro:

The value of the --hostname flag must be a hostname, not a URL

o, en un escenario ligeramente distinto:

error connecting to github.com
check your internet connection or https://githubstatus.com

Aquí van los errores más comunes de gh auth login y sus soluciones, más allá del clásico problema de credenciales caducadas que ya cubrimos en Cómo recuperar el acceso a tu repositorio de GitHub desde la terminal fácilmente.

Error 1: pasar una URL en vez de un hostname

Este es el error más frecuente, y viene directamente de una confusión de formato. El flag --hostname espera solo el dominio, sin protocolo ni barras:

# Mal — esto falla
gh auth login --hostname https://github.com

# Bien
gh auth login --hostname github.com

Lo mismo aplica si usas GitHub Enterprise Server con tu propio dominio:

# Mal
gh auth login --hostname https://github.miempresa.com/

# Bien
gh auth login --hostname github.miempresa.com

Es un error tentador de cometer porque en casi cualquier otro contexto (navegador, git remote, curl) sí escribimos la URL completa con protocolo — pero gh auth login específicamente quiere el hostname pelado.

Error 2: gh no detecta que ya tienes sesión iniciada en el navegador

Cuando ejecutas gh auth login de forma interactiva y eliges el método de autenticación vía navegador, a veces el proceso se queda “colgado” esperando confirmación aunque ya hayas autorizado el acceso en la pestaña del navegador. Esto suele pasar cuando tienes varias cuentas de GitHub abiertas simultáneamente en el navegador y el flujo OAuth autoriza la cuenta equivocada, o cuando el navegador por defecto de tu sistema no es el que tienes activamente logueado.

Solución: fuerza el método de autenticación por token en vez de por navegador, generando un Personal Access Token manualmente desde GitHub (Settings → Developer settings → Personal access tokens) y pasándolo directamente:

gh auth login --with-token < mi_token.txt

O de forma interactiva, eligiendo explícitamente “Paste an authentication token” en vez de “Login with a web browser” cuando el CLI te lo pregunte.

Error 3: conflicto entre múltiples cuentas autenticadas

Si trabajas con una cuenta personal y una de empresa, es fácil acabar con gh autenticado contra la cuenta equivocada en un repositorio concreto. Comprueba qué cuentas tienes activas:

gh auth status

Esto te lista todas las cuentas autenticadas y cuál está activa por defecto para cada hostname. Para cambiar la cuenta activa sin tener que volver a autenticarte desde cero:

gh auth switch --hostname github.com --user tu-usuario-secundario

Si gh auth switch no está disponible en tu versión (se añadió en versiones relativamente recientes del CLI), actualiza gh primero:

gh --version
sudo apt update && sudo apt install gh   # Ubuntu/Debian con el repo oficial de GitHub CLI

Error 4: gh autenticado pero git push sigue pidiendo usuario/contraseña

Un caso confuso: gh auth status confirma que estás correctamente autenticado, pero un git push normal (sin usar gh) te sigue pidiendo usuario y contraseña, y falla porque GitHub ya no acepta contraseña normal para operaciones git desde 2021. Esto pasa porque gh y git usan credenciales separadas por defecto — autenticarte en gh no configura automáticamente el credential helper de git.

Solución: configura explícitamente que git use las credenciales de gh:

gh auth setup-git

Este comando configura el credential.helper de git para que delegue en gh, de forma que cualquier git push/git pull sobre HTTPS use automáticamente el token que ya tienes autenticado en el CLI — sin volver a pedirte usuario ni contraseña.

Error 5: gh funciona en un repo pero no en otro (organización con SSO)

Si tu organización de GitHub tiene activado SAML SSO, un token que funciona perfectamente en tus repos personales puede fallar con un 403 o un mensaje de “Resource protected by organization SAML enforcement” al intentar usarlo contra repos de esa organización, aunque gh auth status muestre la sesión como válida.

Solución: el token necesita autorización explícita para esa organización concreta. Ve a GitHub → Settings → Developer settings → Personal access tokens, localiza el token en uso, y usa la opción “Configure SSO” para autorizarlo contra la organización correspondiente. Sin este paso, el token es técnicamente válido pero la organización lo bloquea a nivel de política SSO, independientemente de los permisos (scopes) que tenga asignados.

Error 6: variables de entorno GH_TOKEN que pisan tu autenticación interactiva

Si en algún momento configuraste una variable de entorno GH_TOKEN o GITHUB_TOKEN (habitual al trabajar con GitHub Actions localmente, o al copiar configuración de un pipeline de CI a tu máquina de desarrollo), gh le da prioridad a esa variable por encima de tu sesión autenticada normal. Esto puede generar un comportamiento confuso: gh auth status muestra tu usuario autenticado correctamente, pero las operaciones reales usan silenciosamente el token de la variable de entorno, que puede tener permisos distintos (o estar caducado).

echo $GH_TOKEN
echo $GITHUB_TOKEN

Si cualquiera de las dos variables tiene un valor y no es intencional, elimínala de tu sesión de shell (y de tu .bashrc/.zshrc si la habías dejado ahí permanentemente):

unset GH_TOKEN
unset GITHUB_TOKEN

Para GitHub Enterprise Server existe el equivalente GH_ENTERPRISE_TOKEN, con la misma prioridad sobre la sesión interactiva.

Autenticación no interactiva en scripts y CI

Si necesitas autenticar gh dentro de un script automatizado o un pipeline de CI (no una terminal interactiva), la forma correcta es pasar el token directamente por variable de entorno en el propio comando, sin usar gh auth login en absoluto:

GH_TOKEN=ghp_tu_token_aqui gh repo view owner/repo

gh detecta automáticamente GH_TOKEN en el entorno y lo usa para autenticar esa llamada concreta, sin necesidad de un login previo ni de guardar credenciales en disco — es el patrón recomendado precisamente para entornos de CI/CD donde no quieres persistir una sesión.

Verificación general tras resolver cualquiera de estos errores

gh auth status
gh repo view owner/repo

Si ambos comandos responden sin pedir credenciales adicionales ni mostrar errores, la autenticación está correctamente configurada tanto para el CLI de gh como para las operaciones normales de git.

Resumen de comandos útiles

Necesito… Comando
Ver el estado de autenticación actual gh auth status
Autenticarme con hostname correcto gh auth login --hostname github.com
Autenticarme por token en vez de navegador gh auth login --with-token < token.txt
Cambiar entre cuentas ya autenticadas gh auth switch --hostname github.com --user usuario
Que git use las credenciales de gh gh auth setup-git

Con estos cinco puntos cubres la gran mayoría de fricciones que aparecen al automatizar o gestionar la autenticación de GitHub CLI en un flujo de trabajo diario.