totp - La autenticación Git falla después de habilitar 2FA
settings github (4)
Una solución de extremo a extremo lleva 3 pasos.
Felicitaciones a Gergo Erdosi. Su respuesta es en gran parte correcta, es solo que Github cambia esa página de configuración. A partir de finales de 2016, debe generar un token de acceso desde su página de tokens de acceso personal .
Use este token de acceso como su contraseña en la línea de comando.
Puede persistir su nombre de usuario incluyéndolo en la url remota de su proyecto. Una de las formas de hacerlo es editar su
.git/config
para modificar la líneaurl
en el siguiente formato:url = https://[email protected]/owner/repo.git
Puede persistir su contraseña ejecutando esto solo una vez:
$ git config credential.helper store
y luego sus futuras contraseñas de git se almacenarán en ~ / .git-credentials, en texto plano, utilizando el formato
https://user:[email protected]
.El almacenamiento de las contraseñas en texto sin formato normalmente se consideraría un riesgo para la seguridad. Pero en este caso 2FA, la credencial NO es su contraseña real, es una cadena generada aleatoriamente. Por lo tanto, es tan seguro como usar
una clave privada ssh y una clave privada ssh sinfrase de contraseña. ADVERTENCIA: tenga en cuenta que, si también utiliza otra (s) cuenta (s) de git sin 2FA en esta máquina, esas contraseñas reales también se almacenarán en texto sin formato.
PS: Alternativamente, puede elegir usar el inicio de sesión basado en ssh, utilizando una clave privada ssh protegida con frase de contraseña, que sería más segura y menos conveniente, pero está fuera del alcance de esta respuesta.
Acabo de habilitar 2FA (no puedo pensar en ningún otro cambio que hice) y git me pidió mi nombre de usuario y contraseña. Proporcioné ambos, pero estaban "equivocados". Intenté muchas de las soluciones aquí: Git push requiere nombre de usuario y contraseña, pero eso no funcionó. En particular, cuando se cambia de https a ssh, la tecla ssh da
Permiso denegado (publickey). fatal: no se pudo leer desde el repositorio remoto.
$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from ''matching'' to ''simple''. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See ''git help config'' and search for ''push.default'' for further information.
(the ''simple'' mode was introduced in Git 1.7.11. Use the similar mode
''current'' instead of ''simple'' if you sometimes use older versions of Git)
Username for ''https://github.com'': **********
Password for ''https://[email protected]'':
remote: Invalid username or password.
fatal: Authentication failed for ''https://github.com/mlbileschi/scala.git/''
¿Algun consejo?
En Linux, puede autenticar su identidad GitHub usando una clave SSH.
1) Generando una nueva clave SSH ( source )
Terminal abierta.
Pegue el texto a continuación, sustituyendo en su dirección de correo electrónico de GitHub.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Esto crea una nueva clave ssh, utilizando el correo electrónico proporcionado como una etiqueta.
2) Vinculando la clave a tu cuenta de GitHub
Abrir el terminal y copiar la clave pública generada.
cat ~/.ssh/id_rsa.pub
Debe salir algo como
ssh-rsa AAAAB3NzaC1y ... mKAKw== [email protected]
Vaya a https://github.com/settings/keys y haga clic en New SSH Key
, asigne un título y copie y pegue la clave pública.
3) Cambiar el origen de git de https://
a ssh
Abra el terminal, cd
a su ubicación de repositorio y escriba
git remote set-url origin [email protected]:<github username>/<repository name>
Necesitas generar un token de acceso. Puedes crear uno yendo a tu página de configuración .
Use este token de acceso como su contraseña en la línea de comando.
Tuve un problema similar. Tuve que alterar la url utilizada en el comando git para incluir mi nombre de usuario.
git push https://[email protected]/mlbileschi/scala.git
Luego, cuando solicite PW, use el token de acceso que creó siguiendo las instrucciones de la respuesta de Gergo Erdosi.