Github - Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead

Error github al hacer push por desactivacion de usuario y contraseña

Error lanzado por el cliente de git al intentar hacer push por cambio de modo de autenticación en github
Error lanzado por el cliente de git al intentar hacer push por cambio de modo de autenticación en github

Hoy intentando hacer un push a un repo de github me ha saltado este aviso:

remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead. remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information. fatal: unable to access 'https://github.com/eacevedof/un-repo.git/': The requested URL returned error: 403

Github ya llevaba un tiempo avisandome que la forma de autenticación habia cambiado de user//password a user//pat (Personal Access Token) y que debía adaptarme.

Pasos para obtener el Personal Access Token de Github

  • Entrar en tu github en esta url: https://github.com/settings/tokens. Verás algo como esto:
    Panel de generación de nuevos Personal Access Tokens en github
  • Presionamos en Generate new token. Ingresamos un nombre descriptivo relacionado con los permisos que se asignaran al token generado
    Formulario con campo Note y checks de permisos para el token
  • Al final de la página encontraremos un botón Generate token
    Botón verde Generate token al final de la página
  • Guardamos a buen recaudo el token (será nuestro nuevo password)
    Resultado del token generado

Con nuestro nuevo password nos falta configurar el git-cli. Tenemos que forzar al command line (gitbash) que nos vuelva a pedir el usuario y contraseña

Pasos para ingresar la nueva contraseña

  • Ejecutamos: git config --system credential.helper Nos mostrará el nombre del gestor de credenciales que estamos usando.
    Es donde actualmente está almacenado nuestro antiguo password. En mi caso me imprime osxkeychain
    Guardamos ese texto porque más adelante habrá que restaurarlo
  • Borramos ese gestor con: sudo git config --system --unset credential.helper
  • Hacemos un git push
  • Aparecerá algo como: Username for 'https://github.com': tu-nombre-de-usuario Password for 'https://tu-nombre-de-usuario@github.com': el-token-anterior Si estás en vscode te preguntará si quieres vincular tu entorno con tu cuenta. Si le indicas que no, arriba te pedirá únicamente el token
  • Esto ya no debería dar el error. Hemos actualizado nuestras credenciales.
  • Si estás en vscode te puedes saltar este paso. Restauramos el gestor sudo git config --system credential.helper osxkeychain

Como último paso habría que modificar el archivo .git/config actualizando la url de origen con el token. Esto evitará que te pida constantemente el usuario y contraseña

//archivo dentro del repositorio: un-repo/.git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = https://tu-nombre-de-usuario:el-token-anterior@github.com/tu-nombre-de-usuario/un-repo.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "main"] remote = origin merge = refs/heads/main

Otra forma de hacer un git clone de un repo privado es la siguiente: git clone https://tu-nombre-de-usuario:tu-token@github.com/tu-nombre-de-usuario/un-repo.git

Autor: Eduardo A. F.
Publicado: 30-06-2021 20:40
Actualizado: 24-10-2021 13:54