La autenticación de GitHub falla por https y devuelve una dirección de correo electrónico incorrecta


128

Iniciar una inserción o cualquier otra acción con GitHub desde la línea de comando (a través de https, no ssh) que solicita el nombre de usuario y la contraseña no solo falla, sino que, cuando lo hace, regresa

Username for 'https://github.com': username
Password for 'https://username@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/username/repository.git/'

No tengo una @github.comdireccion. La contraseña y el nombre de usuario son correctos.

Sé que podría cambiar a SSH y usar claves, pero eso no responde por qué la autenticación falla por https.


Documentación git-scm.com/book/en/… git-config - Obtenga y establezca el repositorio u opciones globales git-scm.com/docs/git-config
John Smith

Respuestas:


171

El soporte de GitHub determinó la raíz del problema de inmediato: autorización de dos factores.

Para usar GitHub sobre el shell con https, cree un token OAuth . Como señala la página, tuve que eliminar mis credenciales de nombre de usuario y contraseña de Keychain, pero con el osx-keychainlugar, el token se almacena como contraseña y las cosas funcionan exactamente como lo harían sobre https sin autorización de dos factores.


44
+1. También puede usar un PAT (token de acceso personal) en una red cifrada: stackoverflow.com/a/18607931/6309
VonC

¿Cuál es la diferencia entre un PAT y un OAuth?
lindhe

@lindhe el token OAuth es un tipo de token, y el PAT es un token OAauth en este caso.
Kerry Jones

22

No tengo una @github.comdireccion

No tiene que: @es el separador entre el nombre de usuario: contraseña y el dominio.
No es una dirección de correo electrónico.

Una URL completa de GitHub https sería:

https://username:password@github.com/username/reponame.git

Sin la contraseña (que luego se pediría en la línea de comando), eso daría:

https://username@github.com/username/reponame.git

Pero, de nuevo, username@github.comno es una dirección de correo electrónico, solo la primera parte de las credenciales.

Asegúrese de que el caso de su usernamey reponamesea ​​correcto: es sensible a mayúsculas y minúsculas .

Tenga en cuenta que puede almacenar y cifrar sus credenciales en un .netrc.gpg(o _netrc.gpgen Windows) si no desea aclarar dichas credenciales en la URL.
Consulte " ¿Hay alguna manera de omitir la escritura de contraseñas cuando se usahttps://github ".


También puede dejar la contraseña, escribiendo la contraseña cada vez. En ese caso lo sería https://username@github.com/username/reponame.git.
Mark Hildreth

Oh, eso tiene sentido. Gracias. Conocía la distinción entre mayúsculas y minúsculas y estoy seguro de que el nombre de usuario y la contraseña que proporciono son correctos. (Funcionan bien para iniciar sesión en el sitio web). A
ele

2
@ele sí, pero ¿tu contraseña incluye caracteres especiales (como ! * ' ( ) ; : @ & = + $ , / ? # [ ])? Tendrían que estar "codificados en porcentaje" ( en.wikipedia.org/wiki/Percent-encoding ).
VonC

La contraseña es alfanumérica. Veré qué da 'git remote -v' la próxima vez que esté en la máquina, pero parece que podría necesitar contactar al soporte de GitHub a continuación.
ele

@ele intente el enfoque .netrc primero (ni siquiera cifre, solo para probar). Si eso no funciona, el soporte de GitHub es de hecho el siguiente paso.
VonC

21
  • Vaya al Administrador de credenciales => Administrador de Windows
  • Borrar todo lo relacionado con tfs
  • Ahora haga clic en Agregar una credencial genérica y proporcione los siguientes valores

    (1) Dirección de Internet o red: git: https: //tfs.donamain name (2) nombre de usuario: su nombre de usuario (3) contraseña: su contraseña

    esto debería arreglarlo


Guau. Me encanta cómo almacena la contraseña incorrecta si la escribe incorrectamente. Luego debe actualizarlo manualmente o eliminarlo
Kolob Canyon

10

Puede suceder en Windows si almacenó credenciales diferentes anteriormente. Vaya al Administrador de credenciales y elimine las credenciales de github almacenadas


1
También es posible editar directamente la contraseña en el Administrador de credenciales de Windows a la nueva contraseña.
Spenhouet


8

Lo mismo sucedió conmigo, cuando habilité la autenticación bidireccional para github. Cosas que hice para resolver:

  • Obtenga su token de acceso personal. Esto tiene que verificar y generar si no está disponible ya. Enlace para esto: https://github.com/settings/tokens
  • Vaya a su carpeta local y elimine y vuelva a clonar la rama de github.
  • Ahora pruebe el comando que estaba probando anteriormente, es decir: git pull origin master
  • Ingrese el nombre de usuario y en Contraseña, pegue el token generado y no olvide guardar ese token en algún lugar, para que pueda reutilizarlo si es necesario.

Hacer esto resolverá tu problema.


Buena llamada: esto me estaba sucediendo en mac => tuve que regenerar mi PAT
SliverNinja - MSFT

Tenemos que generar el token si necesitamos permisos que no están presentes en los tokens generados anteriormente. Además, si hemos perdido nuestro token anterior, podemos generar este nuevo token y usarlo como contraseña para autenticar en lugar de nuestra contraseña git original.
Mohd Belal

5

Solo en caso de que esto ayude a alguien más también, inicié sesión en la aplicación mac, la línea de comando funciona bien, pero debido a que luego activé 2FA, mis comandos devolvieron el error. Tuve que cerrar sesión en la aplicación, luego pude usar mi token de acceso personal en mis comandos según la respuesta de per ele aquí .

¡Ojalá eso ayude a alguien!


-2

En Windows, puede estar bloqueado silenciosamente por su antivirus o firewall de Windows. Desactive temporalmente esos servicios y presione / tire desde el origen remoto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.