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://[email protected]': 
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.

ele
fuente
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.

ele
fuente
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:[email protected]/username/reponame.git

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

https://[email protected]/username/reponame.git

Pero, de nuevo, [email protected]no 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 ".

VonC
fuente
También puede dejar la contraseña, escribiendo la contraseña cada vez. En ese caso lo sería https://[email protected]/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

Jemil Oyebisi
fuente
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

Aleatorio
fuente
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.

palak
fuente
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!

Joel Balmer
fuente
-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.

Vórtice
fuente