Git Clone de GitHub sobre https con autenticación de dos factores

129

Recientemente comencé a usar la autenticación de dos factores en GitHub, y ahora no puedo usar git sobre https en repositorios privados de la manera habitual:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/[...]/MyPrivateRepo/'

Si desactivo la autenticación de dos factores, puedo usarla como antes:

peter@computer:~$ git clone https://github.com/[...]/MyPrivateRepo
Cloning into 'MyPrivateRepo'...
Username for 'https://github.com': [...]
Password for 'https://[...]@github.com': 
remote: Counting objects: 147, done.
remote: Total 147 (delta 0), reused 0 (delta 0), pack-reused 147
Receiving objects: 100% (147/147), 22.70 KiB | 0 bytes/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.

Sé que puedo usar SSH y todo funciona, pero ¿hay alguna manera de mantener la autenticación de dos factores sin dejar de usar GitHub a través de HTTPS, por ejemplo, enviando un token de autenticación con mi solicitud?

peter-b
fuente

Respuestas:

155

Descubre cómo solucionar esto aquí:

https://github.com/blog/1614-two-factor-authentication#how-does-it-work-for-command-line-git

¿Cómo funciona para la línea de comandos Git?

Si está utilizando SSH para la autenticación de Git, descanse: no necesita hacer nada. Si está utilizando HTTPS Git, en lugar de ingresar su contraseña, ingrese un token de acceso personal. Estos se pueden crear yendo a su página de tokens de acceso personal .

Nitsew
fuente
2
Puede agregar el token al archivo .netrc como encontré en el siguiente resumen , para que la autenticación también sea automática.
Martin Woolstenhulme
1
Pero estoy usando ssh, cuando saco de github, también me sugiere ingresar la contraseña y el nombre de usuario, ¿por qué esto? ¡Gracias por su respuesta!
starkshang
3
todavía no funciona para mí después de ingresar el token de acceso en mac después de sudo git clone ... el sistema está pidiendo nombre de usuario y contraseña en el campo de contraseña Estoy ingresando el token pero no funciona para mí. conseguir el mismo error
Ojus kulkarni
39
Use su token como nombre de usuario y proporcione una contraseña en blanco.
Kotie Smit
Tenga en cuenta el espacio adicional al copiar manualmente el token del sitio github (es decir, si no utiliza el botón de copia github). Me tomó un tiempo entender por qué esto no funcionó para mí.
gmargari
34

Según la respuesta de @ Nitsew, cree su token de acceso personal y use su token como nombre de usuario e ingrese con una contraseña en blanco.

Más tarde, no necesitará ninguna credencial para acceder a todos sus repositorios privados.

Sunil Targe
fuente
¿Dónde recomendaría almacenar el token de acceso en un servidor remoto?
bdoubleu
2

Para todos los que luchaban, lo que funcionó para mí fue crear un token de acceso personal y luego usarlo como nombre de usuario Y contraseña (en el mensaje que se abrió).

Zvone
fuente
1

Si su repositorio tiene 2FA habilitado. Recomiendo utilizar la aplicación proporcionada por github.com Aquí está el enlace: https://desktop.github.com/

Después de descargarlo e instalarlo. Siga las instrucciones, la aplicación le pedirá que proporcione la contraseña única para iniciar sesión. Una vez que completó la contraseña de un solo uso, ahora puede ver su repositorio / proyectos.

Ricardo
fuente
solo ayuda si usa Windows
Ian Turton