Git push da como resultado "Error de autenticación"

706

He estado usando Github por un rato y he estado bien con git add, git commity git pushhasta ahora sin problemas. De repente tengo un error que dice:

fatal: error de autenticación

En la terminal cloné un repositorio, trabajé en un archivo y luego solía git addagregar el archivo al registro de confirmación y cuando lo hice git commit, funcionó bien. Finalmente, git pushsolicita nombre de usuario y contraseña. Los puse correctamente y cada vez que hago esto, dice el mismo error.

¿Alguien tiene alguna idea de cuál es la causa de este problema y cómo puedo solucionarlo?

Los contenidos de .git/configson:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############
Zkirkland
fuente
¿Cuál es su nombre de usuario en github y cuáles son los contenidos de .git / config?
mnagel
agréguelo a la pregunta, los comentarios no hacen frente al texto largo
mnagel
Sí, lo siento, comencé el comentario por costumbre y luego lo cambié.
zkirkland
Tu url no se ve bien. Creo que debería comenzar con https://, no http://.
John Szakmeister
Cambió a https ... no funcionó.
zkirkland

Respuestas:

1203

Si habilitó la autenticación de dos factores en su cuenta de Github, no podrá presionar a través de HTTPS utilizando la contraseña de su cuenta. En su lugar, debe generar un token de acceso personal. Esto se puede hacer en la configuración de la aplicación de su cuenta de Github. El uso de este token como contraseña debería permitirle acceder a su repositorio remoto a través de HTTPS. Use su nombre de usuario como de costumbre.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

Es posible que también deba actualizar el origen de su repositorio si está configurado en https:

git remote -v 
git remote remove origin 
git remote add origin [email protected]:user/repo.git  
rc0r
fuente
55
En efecto. +1.
Presento
3
Necesitaba generar mis claves rsa para que las operaciones normales de Git funcionen después de habilitar 2FA.
R11G 01 de
55
¡Gracias! Acabo de tener este error y esto ayudó, solo para señalar. Una vez que haya creado su token de acceso personal, copie eso y luego, cuando presione el repositorio, le pedirá su nombre de usuario y contraseña. Pegue el token de acceso en la contraseña
pourmesomecode
87
También puede hacer git remote add origin https://username:[email protected]/username/repo.gitpara almacenar su token de acceso personal.
mailmindlin
2
Para mí, todo lo que tenía que hacer era habilitar la autenticación SSH desde mi máquina local en mi cuenta de GitHub, y luego cambiar a la dirección remota ssh git; help.github.com/articles/changing-a-remote-s-url
user5359531
603

Pruebe los siguientes pasos para editar o eliminar las credenciales guardadas:

  1. Haga clic en Inicio
  2. Tipo: Credential Manager (en Windows 10, esto se encuentra en "Inicio-> Configuración". Luego busque "Credential Manager")
  3. Vea el Windows Credentials Manageracceso directo y haga doble clic para abrir la aplicación.
  4. Una vez que la aplicación esté abierta, haga clic en la Windows Credentialspestaña.
  5. Localice las credenciales que desea eliminar / actualizar, comenzarán con "git:" y podrían comenzar con "ada:"
  6. Haga clic en la entrada de credencial, se abrirá una vista de detalles de la entrada.
  7. Haga clic en Editar o Eliminar según sea necesario y confirme.
  8. Lavar, enjuagar, repetir según sea necesario.

ingrese la descripción de la imagen aquí

Pradeep
fuente
2
En mi caso, no está en "Credenciales de Windows" sino en "Credenciales genéricas". Eliminar la credencial hacer el truco.
Toni Gamez
8
Puede abrir la ventana anterior con (windows + R) -> "control / nombre Microsoft.CredentialManager"
Sufiyan Ansari
Las credenciales pueden estar allí, pero sin 'git:' delante de él. Eso no va a funcionar. Debe comenzar con 'git:'
Marques
1
Mi empleador configuró la autenticación de Windows en Git Hub, por lo que cada vez que cambiaba mis credenciales de Windows tenía que actualizarla para controlar la fuente. Tu respuesta funcionó.
shary.sharath
1
Fantástica respuesta. Mantenemos un repositorio interno de BitBucket, donde cada una de nuestras credenciales de cuenta se autentica en nuestra organización. Recientemente, todos mis repositorios dejaron de estar disponibles para impulsar cambios de código. Si bien pude cambiar las credenciales caso por caso, realmente no quería hacer esto para cada proyecto. El enfoque de @ Pradeep me permitió resolver la causa subyacente, que fue más que un simple cambio de contraseña. Nuestra organización recientemente cambió el nombre del dominio interno, por lo que al editar las credenciales de forma centralizada, pude arreglar todos mis proyectos.
Michael M
79

Esto funcionó para mí, y también recuerda mis credenciales:

  1. Ejecuta gitbash

  2. Apunte al directorio de repositorios

  3. correr git config --global credential.helper wincred

Utukku
fuente
18
Me tomó un tiempo descubrir qué hace eso: utiliza el Credential Manager en el Panel de control de Windows. Para dejar de usarlo: git config –global credential.helper unset Fuente , y más detalles en esta respuesta .
Ian W
77
@IanW ¿Quieres decir git config --global --unset credential.helper? Eso fue lo que me funcionó en Git Bash.
Ellen Spertus
1
Tenga cuidado con este comando, ya que reemplazará el camino real hacia su asistente de credenciales con simplemente "wincred" que aparentemente no es lo que necesita.
amarax
2
Ejecuté este comando para descubrir que no es lo que quería, la forma correcta de desarmar es git config --global --unset credential.helper. Finalmente, restauré mi configuración correcta con git config credential.helper store.
Omar
Esto me ayuda! ¡Gracias!
Jefsama
70

Puede haber cambiado la contraseña recientemente para su cuenta git. Puede probar git pushcon la -uopción

git push -u origin branch_name_that_you_want_to_push

Después de ejecutar el comando anterior, le pedirá una contraseña para proporcionar su contraseña actualizada

Espero que te pueda ayudar

Usuarios9949
fuente
esto funciona, que mi entorno httpssolo necesita ser
BMW
1
Ciertamente, mucho más fácil que la mayoría de las respuestas. (Y cambiar las contraseñas debería ser la razón más común para obtener un error de autenticación ;-))
Michel
si está experimentando esto en un clon existente, simplemente haga ungit push -u
Ajay Chebbi
64

Primero, puedes asegurarte de usar la URL adecuada:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Luego, si estaba funcionando antes, y si no le pedía su nombre de usuario, debe ser porque había almacenado sus credenciales (inicio de sesión / contraseña) en un $HOME/.netrcarchivo, como se explica aquí . Puede volver a verificar esas configuraciones y asegurarse de que su proxy, si tiene uno, no haya cambiado.

Si eso todavía no funciona, puede cambiar a una url ssh:

git remote set-url origin [email protected]:zkirkland/Random-Python-Tests.git

Pero eso significa que ha publicado su clave pública ssh en la configuración de su cuenta .

VonC
fuente
99
Cambiar de HTTPS a SSH resolvió el problema para mí.
leymannx
3
Había habilitado la autenticación de 2 factores para mi cuenta de GH y cambiar la URL remota a SSH desde HTTPS resolvió el problema de "autenticación fallida". Tiene sentido. ¡Gracias!
Walter Roman
56

Ocurre si cambia su nombre de usuario o contraseña de la cuenta de servicio git (Git). También debe cambiarlo en el Administrador de credenciales de Windows . escriba "Credential Manager" en el menú de búsqueda de Windows, ábralo.

Administrador de credenciales de Windows-> Credencial de Windows y, en Credenciales genéricas, edite su contraseña de git.

Atif AbbAsi
fuente
44
Esto me salvó al trabajar con GitLab (cuando prácticamente nada más ayudó). ¡Gracias!
John Humphreys - w00te
2
Nunca había oído hablar de este administrador de credenciales de Windows ... ¡Gracias!
Sam
1
Di credenciales incorrectas cuando Git me solicitó la identificación de usuario y la contraseña al enviar nuevos archivos al repositorio remoto. Cuando ejecuté el comando push nuevamente, git no me solicitó las credenciales, sino que solo arrojó un error de autenticación fallida. Después de leer esta respuesta, me di cuenta de que git usa credenciales almacenadas en el administrador de credenciales y esa debería ser la razón por la que git no solicita una contraseña cada vez que ingresamos al repositorio remoto. Eliminé la contraseña de git en el administrador de credenciales, después de lo cual git nuevamente me solicitó la identificación de usuario y la contraseña.
Jchenna
41

Básicamente, mi credencial expiró y estaba enfrentando el problema anterior.

El siguiente comando 2 me ayudó:

git config --global --unset credential.helper

git config credential.helper store

Le pedirá credenciales la próxima vez que intente presionar.

Siga las pautas a continuación para obtener más detalles sobre el almacenamiento seguro y no seguro del nombre de usuario y las contraseñas:

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache

Jems
fuente
Esto funcionó para mí después de cambiar mi contraseña en Github y no había cambiado mis credenciales localmente.
Scott
33

Si encontró un problema de error de autenticación cuando ingresó la contraseña y el nombre de usuario correctos, es un problema de git. Para resolver este problema cuando está instalando el git en su máquina, desactive la casilla habilitar el administrador de credenciales gitingrese la descripción de la imagen aquí

Hoque MD Zahidul
fuente
1
Esto solucionó mi problema
user1929819
arreglaron el mío también. ¡Un millón de gracias!
Brian Edwards
No encuentro este tipo de solución. He reinstalado el git
Hoque MD Zahidul
También solucioné mi problema (se instaló git, solo lo reinstalé, desmarcando esto: ¡y está bien!)
manatlan
1
También tuve que marcar "Usar la biblioteca nativa de Windows Secure Channel". No está marcado por defecto.
doptrois
25

Creo que por alguna razón GitHub espera que la URL NO tenga el subdominio www. Cuando uso (por ejemplo)

git remote set-url origin https://www.github.com/name/repo.git

da los siguientes mensajes:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

Sin embargo, si uso

git remote set-url origin https://github.com/name/repo.git

Funciona perfectamente bien. No tiene mucho sentido para mí ... pero supongo que recuerde no poner www en la URL remota para los repositorios de GitHub.

Observe también que las URL de clonación proporcionadas en la página web del repositorio de GitHub no incluyen www.

Electo
fuente
44
No poner "www" en "github.com" funciona. Como eso es importante, Github debería arreglar su sitio para que no pueda clonar usando "www".
John Nagle
1
Gracias:) A mi url le faltaba el .git, y este comentario me hizo echarle un vistazo y resolverlo.
19

Hola, recibí el mismo error. Probé todas las soluciones mencionadas en esta página, pero no funcionó. Finalmente, encontré la solución, así que pensé en publicarla. Por favor, corrígeme si me equivoco en alguna parte. Este tipo de error se produce si a veces la contraseña de su sistema ha cambiado recientemente en algún momento. Intentará validar desde la contraseña anterior. Entonces, siga estos pasos:

  1. Ir al panel de control
  2. Haga clic en cuentas de usuario
  3. Bajo el administrador de credenciales
  4. Vaya a Administrar credenciales de Windows
  5. Ir a credenciales genéricas
  6. Expande la pestaña del servidor git
  7. haga clic en Eliminar de la bóveda

    • También puede hacer clic en editar y cambiar su contraseña almacenada aquí directamente.
Kamala Hanchinal
fuente
10

Me encontré con "$ git fetch fatal: la autenticación falló para 'http: // ...." después de que mi contraseña de Windows haya expirado y se haya cambiado. Múltiples recuperaciones, reiniciar e incluso reinstalar git con el administrador de credenciales de Windows no ayudó.

Sorprendentemente, la respuesta correcta en algún lugar aquí en los comentarios, pero no en las respuestas (¡y algunas de ellas son realmente extrañas!). Debe ir al Panel de control -> Credential Manager / Windows Credentials y actualizar su contraseña para git: http: // yourrepoaddress

amarax
fuente
9

No estoy realmente seguro de qué hice para obtener este error, pero estoy haciendo:

git remote set-url origin https://...

no funciono para mi Sin embargo:

git remote set-url origin [email protected]:user/repo

de alguna manera funcionó.

Kafeaulait
fuente
3
Cambiaste de https a ssh
James Wierzba
A mi también me funciona. Esto no es mágico, es porque he almacenado la configuración para el acceso ssh (con una clave pública configurada), que no se recogen para el acceso https (que es user / pass + MFA).
Daniel Dubovski
8

Yo tuve el mismo problema. Establezco url de esa manera:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

También elimina el archivo de configuración de esta entrada askpass = /bin/echo. Luego "git push" me pidió nombre de usuario y contraseña y esta vez funcionó.

Bartosz
fuente
Yo no tenía necesidad de eliminar de archivo de configuración de esta entrada askpass = /bin/echo.
Darius Miliauskas
5

En mi caso, recientemente cambié mi contraseña de Windows y tengo la clave SSH configurada para acciones relacionadas con git (pull, push, fetch, etc.), después de encontrar el error "fatal: Autenticación fallida", actualicé mi contraseña en Windows administrador de credenciales (Panel de control \ Cuentas de usuario \ Administrador de credenciales) para todos los elementos que comienzan con git: ..., y lo intenté nuevamente, ¡funcionó esta vez!

Kiran Modini
fuente
3

Si ha habilitado la autenticación de dos factores en su cuenta de Github, inicie sesión en su cuenta de GitHub y vaya a: https://github.com/settings/tokens/new para generar un nuevo token de acceso, copie ese token y péguelo como Una contraseña para la autenticación en la terminal.

RegarBoy
fuente
2

Si está en Windows e intenta ingresar a un servidor de Windows que tiene usuarios de dominio que trabajan como usuarios de repositorio (TFS), intente ingresar a la URL de TFS (es decir http:\\tfs) con IE. ingrese las credenciales de su cuenta de dominio y deje que aparezca la página.

¡PRECAUCIÓN, solo use INTERNET EXPLORER! otros navegadores no cambiarán las credenciales de su sistema.

Ahora vaya a git bash y cambie su usuario remoto para el repositorio como a continuación:

git config user.name "domainName\userName"

Y listo, ¡ahora puedes empujar!

AmiNadimi
fuente
1

Para mí, olvidé que había cambiado la contraseña en Github.com, y mi llavero para la autenticación de shell nunca se actualizó a esa nueva contraseña. Eliminar todo git de mi llavero y luego volver a ejecutar la solicitud de git ayudó a resolver el problema, solicitándome nuevamente la nueva contraseña.

MMMdata
fuente
1

Solo para intervenir aquí, lo que solucionó el problema para mí fue que simplemente cancelé el mensaje inicial, el ssh se abrió con mi cuenta de bitbucket, ingresé la contraseña allí y todo funcionó como se esperaba.

Trevor Hart
fuente
1

Estaba enfrentando el mismo problema en Windows. La mayoría de las veces normalmente enfrento el problema debido al uso de múltiples cuentas git. Si está en Windows, abra la terminal como administrador e intente ejecutar los comandos nuevamente. Asegúrese de tener los derechos de acceso de administrador.

Muema
fuente
1

Estaba agregando a Bitbucket vinculado con Git y tuve que eliminar las claves almacenadas, ya que esto estaba causando el error fatal.

Para resolver, abrí el símbolo del sistema y ejecuté

 rundll32.exe keymgr.dll, KRShowKeyMgr

Eliminé la clave responsable de iniciar sesión y la próxima vez que envié los archivos al repositorio, se me solicitaron las credenciales e ingresé las correctas, lo que resultó en una inserción exitosa.

William Humphries
fuente
0

También me encontré con el error (es por eso que he aterrizado aquí), pero ninguna de las sugerencias me funcionó. Esta fue la primera vez que intenté implementar Git local en azul. Cuando recibí este error, restablecí mis credenciales (haciendo clic en el enlace en Azure) después de algunos intentos. El problema es que en este punto me dice que mi nombre de usuario ya está en uso, por lo que también cambié mi nombre de usuario a otro. Al final, eliminé manualmente la carpeta .git en mi disco local y la volví a implementar sin problemas.

hombre nuevo
fuente
0

Declaración del problema: "falló la autenticación fatal de git". Estoy usando bitbucket.

Solución: simplemente eliminé al usuario del uso de la administración de acceso de bitbucket y luego agregué el mismo usuario. El archivo .gitconfig es simple

[user]
    name = BlaBla
    email = [email protected]

[push]
    default = simple
J4cK
fuente
0

con credenciales correctas si el problema persiste

si usa androidstudio 2.1 beta, entonces es un error, actualice a beta 2 (archivo de actualización de 3 mb), esto funcionó para mí

geniushkg
fuente
0

Asegúrate de tener permiso de ESCRITURA para presionar.

read ***write*** admin 
Lay Leangsros
fuente
0

Asegúrese de que su clave ssh se agregue a su sesión ssh actual.

  1. Copie la salida de cat ~/.ssh/id_rsa.pubsu configuración de GitHub en las claves SSH y GPG.

  2. Actualice su sesión ssh actual con ssh-add ~/.ssh/id_rsa.pub

Estoy usando Windows Powershell con Openssh instalado.

Peter
fuente
0

en Android studio canary build 3.1+, si está usando la herramienta git de Android studio, puede usar lo siguiente:

  • Haga clic en Android Studio
  • Haga clic en Preferencias ...
  • IR en VersionControl -> Github
  • Aquí cambie el tipo de autenticación a contraseña
  • Este paso requerirá que ingreses nombre de usuario y contraseña. Ingrese su nombre de usuario de github como inicio de sesión y la contraseña de github como contraseña.
  • Haga clic en el botón de prueba.

Si la conexión es exitosa, entonces ya está listo y puede usar el cliente de la interfaz de usuario de Android Studio Github.

Tarun
fuente
0

Si está utilizando ssh y clonado con https, esto no funcionará. ¡Clonar con ssh y luego presionar y tirar debería funcionar como se espera!

GoldenWest
fuente
0

En caso de que esto sea tangencialmente útil, ya que esta pregunta ahora es un éxito para los problemas de autenticación http con git: Windows Credential Manager había almacenado mi contraseña correctamente, y como estaba usando Git LFS configuré una URL http en lugar del ssh habitual: / / .

Mi problema fue que mi política de contraseña corporativa forzó un cambio de contraseña de la cuenta pero nunca actualicé mis credenciales almacenadas (ya que siempre uso una clave ssh).

Simplemente actualizando la contraseña directamente en la GUI de Wincred funcionó: solo busque una git:https://<your-url>entrada.

msanford
fuente
0

Esto nos sucedió después de forzar la "Autenticación de dos factores" antes de iniciar sesión desde Gitlab. Tuvimos que pegar el texto dentro de id_rsa.pub en Gitlab, y luego reintroducir el repositorio en el código VS usando el terminal.

Onat Korucu
fuente