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 "mal". Probé muchas de las soluciones aquí: Git push requiere nombre de usuario y contraseña, pero eso no funcionó. En particular, al cambiar de https a ssh, la clave ssh da
Permiso denegado (clave pública). 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?
git
github
two-factor-authentication
Max Bileschi
fuente
fuente
Respuestas:
Necesita generar un token de acceso. Puede crear uno yendo a su página de configuración .
Utilice este token de acceso como contraseña en la línea de comandos.
fuente
git pull
. Probablemente un problema local, pero esto podría ayudar a alguien.The requested URL returned error: 403
cuando uso el token como contraseña, para presionar httpsUna solución de extremo a extremo consta de 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 finales de 2016, debe generar un token de acceso desde su página de tokens de acceso personal .
Utilice este token de acceso como contraseña en la línea de comandos.
Puede conservar 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 laurl
línea en el siguiente formato:url = https://[email protected]/owner/repo.git
Puede conservar su contraseña ejecutando esto solo una vez:
$ git config credential.helper store
y luego su (s) futura (s) contraseña (s) de git se almacenarán en ~ / .git-credentials, en texto sin formato, usando el formato
https://user:[email protected]
.El almacenamiento de la (s) contraseña (s) en texto plano normalmente se consideraría un riesgo de seguridad. Pero en este caso de 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. AVISO: tenga en cuenta que, si también usa 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.PD: Alternativamente, puede optar por usar el inicio de sesión basado en ssh, usando una clave privada ssh protegida por frase de contraseña, que sería más segura y menos conveniente, pero está fuera del alcance de esta respuesta.
fuente
...the credential is NOT your real password, it is a randomly generated string. So it is as secure as using ssh private key.
- no es cierto en absoluto . Las claves SSH se pueden proteger fácilmente con una frase de contraseña lista para usar . Sencillo~./git-credentials
- ¡no está asegurado en absoluto!Tuve un problema similar. Tuve que modificar la URL utilizada en el comando git para incluir mi nombre de usuario.
Luego, cuando solicite PW, use el token de acceso que creó siguiendo las instrucciones en la respuesta de Gergo Erdosi.
fuente
git remote set-url --push origin
con el mismo valor,git push origin master
aún falla.git-bash
funcionó bien, sin embargoEn Linux, puede autenticar su identidad de GitHub mediante una clave SSH.
1) Generando una nueva clave SSH ( fuente )
Terminal abierto.
Pegue el texto a continuación, sustituyéndolo por su dirección de correo electrónico de GitHub.
Esto crea una nueva clave ssh, utilizando el correo electrónico proporcionado como etiqueta.
2) Vincular la clave a su cuenta de GitHub
Abra el terminal y copie la clave pública generada
Debería generar algo como
Navegue a https://github.com/settings/keys y haga clic en
New SSH Key
, asígnele un título y copie y pegue la clave pública.3) Cambiar el origen de git de
https://
assh
Abra la terminal,
cd
a la ubicación de su repositorio y escribafuente
https
veces es útil, por ejemplo, cuando se mantiene upstream overhttps
mientras tiene su fork overssh
, para evitar presionar accidentalmente upstream, ya quehttps
le pedirá la contraseña y le recordará que apuntó al repositorio incorrectoEsto funcionó para mí:
Vaya a [your-git-repo] /. Git / config
En
[remote "origin"]
Cambiar laURL
clave del protocolo http a git.Ejemplo
Si el valor de
url
es https://github.com/ .git cámbielo a[email protected]:<repo-url>.git
fuente
Si ya está utilizando claves ssh, después de habilitar 2FA, le obligará a leer / escribir de forma remota con SSH. Realmente no necesita agregar tokens personales, sino seguir usando su par de claves SSH existente.
Simplemente cambie su URL remota de HTTPS a SSH:
fuente
Esto funcionó para mí después de habilitar 2FA en Github:
Cree un token de acceso personal: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line .
NOTA: Recuerde seleccionar los permisos correctos para el token.
Ejecutar:
git clone https://github.com/username/repo.git
Nombre de usuario:
your_username
Contraseña:
your_token
Más información: https://help.github.com/en/github/using-git/which-remote-url-should-i-use
fuente
Estaba enfrentando este problema en un repositorio existente cuando habilité 2FA (autenticación de dos factores) para uno de mis repositorios privados. Pude resolverlo siguiendo los pasos a continuación en mi terminal ubuntu 19.0: -
Una vez que se agrega la clave, vaya a su terminal y actualice la URL de origen
git remote set-url origin [email protected]:<USERNAME>/<BRANCH-NAME>
Eso es todo, espero que ayude
fuente