"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.
Contenidos
- Error 1: pasar una URL en vez de un hostname
- Error 2: gh no detecta que ya tienes sesión iniciada en el navegador
- Error 3: conflicto entre múltiples cuentas autenticadas
- Error 4: gh autenticado pero git push sigue pidiendo usuario/contraseña
- Error 5: gh funciona en un repo pero no en otro (organización con SSO)
- Error 6: variables de entorno GH_TOKEN que pisan tu autenticación interactiva
- Autenticación no interactiva en scripts y CI
- Verificación general tras resolver cualquiera de estos errores
- Resumen de comandos útiles
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.