GitHub: nombre de usuario o contraseña no válidos

403

Tengo un proyecto alojado en GitHub. Fallo al intentar empujar mis modificaciones en el maestro. Siempre recibo el siguiente mensaje de error

Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://[email protected]/eurydyce/MDANSE.git/'

Sin embargo, configurar mi clave ssh en github parece estar bien. De hecho, cuando hago un ssh -T [email protected]me sale

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

Lo que parece indicar que todo está bien desde ese lado (eurydyce es mi nombre de usuario github). Seguí estrictamente las instrucciones dadas en github y las recomendaciones de muchos debates de stack, pero de ninguna manera. ¿Tendrías alguna idea de lo que he hecho mal?

Eurídice
fuente
No estoy seguro de si debería publicar una respuesta o no (alta probabilidad de obtener un voto negativo), ya que resolví este mensaje de error al cambiar la contraseña en la configuración de github después de intentar muchos intentos con la contraseña "correcta" (verificar mediante elemento de inspección).
Fruta

Respuestas:

274

https: //[email protected]/eurydyce/MDANSE.git no es una url ssh, es una https (que requeriría el nombre de su cuenta de GitHub, en lugar de ' git').

Intenta usar ssh://[email protected]:eurydyce/MDANSE.gito simplemente[email protected]:eurydyce/MDANSE.git

git remote set-url origin [email protected]:eurydyce/MDANSE.git

El OP Pellegrini Eric agrega:

Eso es lo que hice en mi ~/.gitconfigarchivo que contiene actualmente las siguientes entradas[remote "origin"] [email protected]:eurydyce/MDANSE.git

Esto no debería estar en su configuración global (la que está en ~/).
Se puede comprobar git config -len su repo: url que debe declararse en el local de configuración: <yourrepo>/.git/config.

Así que asegúrese de estar en la ruta del repositorio al hacer el git remote set-urlcomando.


Como se señaló en la respuesta de Oliver , una URL HTTPS no usaría nombre de usuario / contraseña si la autenticación de dos factores (2FA) está activada.

En ese caso, la contraseña debe ser un PAT (token de acceso personal) como se ve en " Uso de un token en la línea de comando ".

Esto solo se aplica a las URL HTTPS, SSH no se ve afectado por esta limitación.

VonC
fuente
oups! Tienes razón, hacer esos cambios en mi configuración local hizo que todo funcionara. Muchas gracias.
Eurydice
81
No entiendo esta respuesta en absoluto
Cloud
1
@Clo seguro, qué parte carece de claridad, ¿cómo puedo mejorar esta respuesta?
VonC
Tenía un enlace de clonación https, que no funcionó. Pero lo reemplacé con git @ url y comenzó a funcionar. ¿Cuál podría ser la razón de ésto? También eliminé algunas entradas de github de mi llavero mac. ¿Podría estar relacionado? Sin embargo, lo estaba usando a través de ssh configurando claves. Cualquier puntero será útil en esto.
cg
1
@byronaltice Si esto es SSH, significa que tiene un archivo ~/.ssh/configo %USERPROFILE%\.ssh\config, con una github.comentrada en él.
VonC
1012

Después de habilitar la autenticación de dos factores (2FA), es posible que vea algo como esto cuando se trata de su uso git clone, git fetch, git pullo git push:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

¿Por qué está pasando esto?

De la documentación de ayuda de GitHub :

Después de habilitar 2FA, deberá ingresar un token de acceso personal en lugar de un código 2FA y su contraseña de GitHub.

...

Por ejemplo, cuando se accede a un repositorio Git en el uso de la línea de comandos usando comandos como git clone, git fetch, git pullo git pushcon direcciones URL HTTPS, debe proporcionar su nombre de usuario GitHub y su acceso personal testigo cuando se le solicite un nombre de usuario y contraseña. La línea de comandos no especificará que debe ingresar su token de acceso personal cuando le solicite su contraseña.

Como arreglarlo

  1. Generar un token de acceso personal . (Guía detallada sobre la creación de un token de acceso personal para la línea de comando ).
  2. Copie el token de acceso personal.
  3. Vuelva a intentar el comando que estaba intentando y use el token de acceso personal en lugar de su contraseña.

Pregunta relacionada: https://stackoverflow.com/a/21374369/101662

Oliver
fuente
14
Kudo's y votos a favor; La nueva generación de tokens es lo que necesitaba. También; el "Código de copia" incluía caracteres adicionales (no válidos), así que tuve que ingresar manualmente mi ... clave aleatoria de 20 dígitos?
th3byrdm4n
77
Este fue mi problema, después de agregar la autenticación de 2 factores, que sospeché, sin embargo, faltaba la documentación al respecto. ¡Gracias por la respuesta!
Pogrindis
11
@BeauSmith: Esa es una edición mucho más sustantiva de lo que normalmente permitimos. Básicamente reescribiste esta respuesta por completo. Publíquelo como su propia respuesta separada . También vea ¿Qué hace si alguien básicamente reescribe su respuesta completa?
Martijn Pieters
8
Permítanos por favor permitir que la decisión de retroceder o no ser decidida por @Oliver aquí - hay un argumento perfectamente sólido de cualquier manera
Flexo
10
Editor aquí ... Como parece que las personas que marcan esta respuesta como correcta (como yo) llegan a esta página por un problema que es ligeramente diferente de lo que pretendía el autor de la pregunta, estaba tratando de agregar algunos términos de "jugo de google" y hacer la respuesta más visualmente atractivo para que otros que buscan esta solución puedan encontrarla. Tratando de mejorar las cosas para la comunidad. 😀
Beau Smith
86

Pasos de solución:

  1. Panel de control
  2. Administrador de Credenciales
  3. Haga clic en Credenciales de ventana
  4. En la sección Credencial genérica, habría git url, actualizar nombre de usuario y contraseña
  5. Reinicia Git Bash e intenta clonar
amoljdv06
fuente
44
Estaba teniendo este problema con una versión de github de la compañía (por lo tanto, usando un nombre de usuario / contraseña local). Esta solución lo solucionó.
mkennedy el
En ventanas nuevas, puede buscar "credenciales de Windows" o similar en su idioma. Aparecerá un resultado y puedes probar esta solución.
Charles Tempo
1
Solución perfecta para github local, donde las empresas lo obligan a usar https
avi.elkharrat
56

Si, como yo, acaba de actualizar su contraseña y corrió git pushpara encontrarse con este problema, entonces hay una solución súper fácil.

Solo para usuarios de Mac. Debe eliminar sus entradas de acceso de llavero OSX para GitHub. Puede hacerlo a través de la terminal ejecutando los siguientes comandos.

Eliminar sus credenciales a través de la línea de comando

A través de la línea de comando, puede usar el asistente de credenciales directamente para borrar la entrada del llavero.

Para hacer esto, escriba el siguiente comando:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

Si tiene éxito, no se imprimirá nada. Para probar que funciona, intente clonar un repositorio desde GitHub o ejecute su acción anterior nuevamente como en mi caso git push. Si se le solicita una contraseña, se eliminó la entrada del llavero.

Ahmad Awais
fuente
2
Para Windows: git credential-wincred erase host = github.com protocol = https
Juan Uribe
Encontré este problema en un repositorio de BitBucket. Esta respuesta con en host=bitbucket.orglugar de GitHub lo arregló para mí.
Gutch
26

Al usar la https://URL para conectarse a su repositorio remoto, Git no usará SSH como autenticación, sino que intentará una autenticación básica a través de HTTPS. Por lo general, solo usaría la URL sin un nombre de usuario, por ejemplo https://github.com/username/repository.git, y Git le pedirá que ingrese tanto un nombre de usuario (su nombre de usuario de GitHub) como su contraseña.

Si se utiliza https://[email protected]/username/repository.git, a continuación, que se han memorizado el nombre de usuario de Git utilizará para la autenticación: something. Como lo usó https://[email protected], Git intentará iniciar sesión con el gitnombre de usuario para el que su contraseña, por supuesto, no funciona. Por lo tanto, deberá usar su nombre de usuario.

La alternativa es usar SSH para la autenticación. De esa manera evitará tener que escribir su contraseña todo el tiempo; y como ya parece funcionar, eso es lo que deberías estar usando.

Sin embargo, para hacerlo, debe cambiar su URL remota, por lo que Git sabe que necesita conectarse a través de SSH. El formato es entonces la siguiente: [email protected]:username/repository. Para actualizar su URL, use este comando:

git remote set-url origin [email protected]:username/repository
dar un toque
fuente
cuando intento su comando me sale el siguiente mensaje warning: remote.origin.url has multiple values. Esto puede deberse al hecho de que ya tengo una etiqueta remota en mi archivo ~ / .gitconfig que contiene el valor [remote "origin"] [email protected]:eurydyce/MDANSE.git.
Eurydice
18

solo trata de empujarlo a tu rama nuevamente. Esto le pedirá su nombre de usuario y contraseña nuevamente, para que pueda ingresar la contraseña modificada. Para que su nueva contraseña se almacene nuevamente en el caché.

Shiva Rajkumar
fuente
44
No estoy seguro de por qué esto recibió un voto negativo. En mi caso, mis credenciales se actualizaron y la segunda git pushsolicitó la actualización adecuada, como indica esta respuesta.
Trauma digital
No estoy seguro, lo que quería decir, no está pidiendo la ejecución de nuevas credenciales git push origin master...
Betlista
13

En lugar de git pullintentarlo tambiéngit pull origin master

Cambié la contraseña y el primer comando dio error:

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

Luego git pull origin master, solicitó contraseña y pareció actualizarse

Pablo
fuente
7

No es necesario confiar en generar un token de acceso personal y luego intentar usar el token de acceso personal en lugar de su contraseña.

La solución rápida es configurar su URL remota para que apunte a sshno https.

Hacer esto git remote set-url origin [email protected]:username/repository

Divyanshu Rawat
fuente
5

Recibo esto mientras clono la aplicación de bitbucket:

Cloning into 'YourAppName'...
Password for 'https://youruser id': 
remote: Invalid username or password

Lo resolví Aquí debe crear una contraseña para su ID de usuario

  1. Haga clic en su perfil y configuración Haga clic en su perfil y configuración

  2. Luego, cree la contraseña de la aplicación, elija su nombre, se generará la contraseña, pegue esa contraseña en el terminal Crear contraseña de aplicación

prachit
fuente
4

Deshabilitar la autenticación de 2 factores en github funcionó para mí.

Veo que hay una respuesta eliminada que dice esto, con el motivo de eliminación como "no responde la pregunta". Si funciona, entonces creo que responde la pregunta ...

GreenAsJade
fuente
Esto es raro Lo mismo pasó conmigo. Acabo de desactivar la autenticación de dos factores y ahora funciona para mí. :)
abhijeetps
Esto funcionó para mí a partir de junio de 2020. ¡Gracias!
Gcamara14
4

Yo hice:

$git pull origin master

Luego solicitó el [Nombre de usuario] y [Contraseña] y parece estar funcionando bien ahora.

ZaMy
fuente
Esto funcionó para mí. He usado fetch en lugar de pull, pero de todos modos no importa. ¡Frio!
atereshkov
2

En caso de que reciba este mensaje de error en esta situación:

  • usando github para entreprise
  • usando credential.helper = wincred en git config
  • usando sus credenciales de Windows que cambió recientemente

Luego mire esta respuesta: https://stackoverflow.com/a/39608906/521257

Windows almacena las credenciales en un administrador de credenciales, bórrelo o actualícelo.

BiAiB
fuente
1

Es posible que reciba este error porque ha actualizado su contraseña. Entonces, en la Terminal, primero asegúrese de borrar sus credenciales de GitHub del llavero y luego envíe los cambios a su repositorio, la terminal le pedirá su nombre de usuario y contraseña.

Paras saini
fuente
1

Tuve el mismo problema Y lo resolví cambiando la ruta de la rama remota de https://github.com/YourName/RepoNamea [email protected]:YourName/RepoName.giten la configuración del repositorio de la aplicación cliente.

Olga Kliushkina
fuente
1

Constantemente me encuentro con este problema. Asegúrese de configurar git --config user.name "" y no su nombre real, lo cual he hecho varias veces.

Arthur Bowers
fuente
0

Dado que probablemente desee mantener 2FA habilitado para su cuenta, puede configurar una clave ssh y de esa manera no necesitará escribir sus credenciales de Github cada vez que quiera llevar el trabajo a Github.

Puede encontrar todos los pasos de configuración de ssh en la documentación . Primero, asegúrese de que actualmente no tenga ninguna clave ssh (id_rsa.pub, etc.) con$ ls -al ~/.ssh

Dwyer
fuente
-1
  1. Panel de control
  2. Administrador de Credenciales
  3. Busque opciones de credenciales web y credenciales de Windows
  4. en cualquiera de las dos encontrará credenciales de github, corríjalas con las credenciales correctas
  5. Abra una nueva instancia de git bash para poder ejecutar sus comandos de git.

Esto funcionó para mí, pude tirar y empujar a mi repositorio remoto.

Ajay Deepak
fuente
-1

Solo deshabilito la autenticación de dos factores e intento nuevamente. Esto funciona para mi.

Muhammad Awais
fuente
-3

Esta solución funcionó para mí:

  1. abrir el panel de control
  2. Ir al administrador de credenciales
  3. Haga clic en Credenciales de ventana
  4. En la sección Credencial genérica, habría git url, actualizar nombre de usuario y contraseña
  5. Reinicia Git Bash e intenta clonar
Sandesh Jayaprakash
fuente
1
Esta respuesta duplica una respuesta existente que no es útil. Cuando tienes suficiente reputación (15, creo) puedes votar las respuestas que consideres útiles. Votar sería la respuesta correcta en lugar de agregar esta respuesta duplicada.
AdrianHHH