GitHub: nome utente o password non validi


403

Ho un progetto ospitato su GitHub. Non riesco quando provo a spingere le mie modifiche sul master. Ricevo sempre il seguente messaggio di errore

Password for 'https://git@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/'

Tuttavia, impostare la mia chiave ssh su github sembra ok. Anzi, quando lo faccio ssh -T git@github.comottengo

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

Il che sembra indicare che tutto va bene da quel lato (eurydyce è il mio nome utente github). Ho seguito rigorosamente le istruzioni fornite su github e le raccomandazioni di molte discussioni in pila, ma in nessun modo. Avresti idea di cosa avrei potuto fare di sbagliato?


Non sono sicuro di dover pubblicare una risposta o meno (alta probabilità di ottenere il downvote), poiché ho risolto questo messaggio di errore modificando la password nelle impostazioni di github dopo aver provato molti tentativi con la password "corretta" (controlla tramite elemento di ispezione).
Frutta

Risposte:


274

https: //git@github.com/eurydyce/MDANSE.git non è un URL SSH, è un URL HTTPS (che richiederebbe il nome del tuo account GitHub, invece di ' git').

Prova a usare ssh://git@github.com:eurydyce/MDANSE.gito semplicementegit@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

L' OP Pellegrini Eric aggiunge:

Questo è quello che ho fatto nel mio ~/.gitconfigfile che contiene attualmente le seguenti voci[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

Questo non dovrebbe essere nella tua configurazione globale (quella in ~/).
Si potrebbe verificare git config -lnel vostro repo: che URL deve essere dichiarato nel locale di configurazione: <yourrepo>/.git/config.

Quindi assicurati di essere nel percorso repository quando esegui il git remote set-urlcomando.


Come osservato in Oliver 's risposta , un HTTPS URL non avrebbe usato username / password se l'autenticazione a due fattori (2FA) è attivato.

In tal caso, la password deve essere un PAT (token di accesso personale) come mostrato in " Utilizzo di un token sulla riga di comando ".

Questo vale solo per gli URL HTTPS, SSH non è interessato da questa limitazione.


ahi! Hai ragione, apportare quei cambiamenti nella mia configurazione locale ha fatto funzionare tutto. Molte grazie.
Euridice,

81
Non capisco affatto questa risposta
Cloud

1
@Clo certo, quale parte manca di chiarezza, come posso migliorare questa risposta?
VonC,

Ho avuto il collegamento clone https, che non ha funzionato. Ma ho sostituito con git @ url e ha iniziato a funzionare. Quale potrebbe essere la ragione di ciò? Ho rimosso anche alcune voci di github dal mio portachiavi mac. Potrebbe essere correlato? Tuttavia, lo stavo usando tramite ssh configurando le chiavi. Qualsiasi suggerimento sarà utile in questo.
cg

1
@byronaltice Se questo è SSH, significa che hai un file ~/.ssh/configo %USERPROFILE%\.ssh\config, con una github.comvoce in esso.
VonC

1012

Dopo aver attivato Autenticazione a due fattori (2FA), è possibile vedere qualcosa di simile quando si tenta di utilizzare git clone, git fetch, git pullo git push:

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

Perché questo sta accadendo

Dalla documentazione della Guida di GitHub :

Dopo aver abilitato 2FA, dovrai inserire un token di accesso personale anziché un codice 2FA e la password GitHub.

...

Per esempio, quando si accede a un repository utilizzando Git sulla riga di comando utilizzando i comandi come git clone, git fetch, git pullo git pushcon HTTPS URL, è necessario fornire il nome utente e la tua GitHub accesso personale del token quando viene richiesto un nome utente e una password. Il prompt della riga di comando non specifica che è necessario immettere il token di accesso personale quando viene richiesta la password.

Come sistemarlo

  1. Genera un token di accesso personale . (Guida dettagliata sulla creazione di un token di accesso personale per la riga di comando .)
  2. Copia il token di accesso personale.
  3. Ripetere il comando che si stava tentando e utilizzare il token di accesso personale al posto della password.

Domanda correlata: https://stackoverflow.com/a/21374369/101662


14
Kudo e voti positivi; la nuova generazione di token è ciò di cui avevo bisogno. Anche; il "Codice copia" includeva caratteri aggiuntivi (non validi), quindi ho dovuto inserire manualmente la mia chiave casuale .... 20 [?] cifre.
th3byrdm4n,

7
Questo era il mio problema, dopo aver aggiunto 2 fattore di autenticazione, che sospettavo, tuttavia mancava la documentazione in merito. Grazie per la risposta!
Pogrindis,

11
@BeauSmith: questa è una modifica molto più sostanziale di quanto normalmente consentiamo. Fondamentalmente hai completamente riscritto questa risposta. Si prega di pubblicarlo come risposta separata e propria . Vedi anche Cosa fai se qualcuno riscrive sostanzialmente la tua intera risposta?
Martijn Pieters

8
Tutti, per favore, consentiamo alla decisione di annullare o non decidere da @Oliver qui - c'è comunque un argomento perfettamente valido
Flexo

10
Editor qui ... Poiché sembra che le persone che contrassegnano questa risposta come corretta (come me) arrivino su questa pagina per un problema leggermente diverso da quello previsto dal richiedente, stavo cercando di aggiungere alcuni termini "google juice" e rendere la risposta più visiva attraente in modo tale che altri alla ricerca di questa soluzione possano trovarla. Cercare di migliorare le cose per la comunità. 😀
Beau Smith,

86

Passaggi della soluzione:

  1. Pannello di controllo
  2. Responsabile delle credenziali
  3. Fai clic su Credenziali finestra
  4. Nella sezione Credenziali generiche, ci sarebbe git url, aggiorna nome utente e password
  5. Riavvia Git Bash e prova a clonare

4
Stavo avendo questo problema con una versione aziendale di github (quindi usando username / password locali). Questa soluzione l'ha risolto.
mkennedy,

Nelle nuove finestre, puoi cercare "Credenziali di Windows" o simili nella tua lingua. Apparirà un risultato e puoi provare questa soluzione.
Charles Tempo,

1
Soluzione perfetta per github locale, dove le aziende ti obbligano a utilizzare https
avi.elkharrat

56

Se come me hai appena aggiornato la password e ti sei imbattuto git pushin questo problema, allora c'è una soluzione semplicissima.

Solo per utenti Mac. Devi eliminare le voci di accesso al portachiavi OSX per GitHub. Puoi farlo tramite terminale eseguendo i seguenti comandi.

Eliminazione delle credenziali tramite la riga di comando

Tramite la riga di comando, è possibile utilizzare direttamente l'helper delle credenziali per cancellare la voce del portachiavi.

Per fare ciò, digitare il seguente comando:

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

# [Now Press Return]

Se ha esito positivo, non verrà stampato nulla. Per verificare che funzioni, prova a clonare un repository da GitHub o esegui nuovamente l'azione precedente come nel mio caso git push. Se viene richiesta una password, la voce del portachiavi è stata eliminata.


2
Per windows: git credential-wincred cancella host = protocollo github.com = https
Juan Uribe

Ho riscontrato questo problema in un repository BitBucket. Questa risposta con host=bitbucket.orginvece di GitHub l'ha risolta per me.
gutch

26

Quando si utilizza l' https://URL per connettersi al repository remoto, Git non utilizzerà SSH come autenticazione ma proverà invece un'autenticazione di base su HTTPS. Di solito, useresti semplicemente l'URL senza un nome utente, ad esempio https://github.com/username/repository.git, e Git ti chiederà quindi di inserire sia un nome utente (il tuo nome utente GitHub) sia la tua password.

Se si utilizza https://something@github.com/username/repository.git, allora si ha preimpostare il nome utente Git utilizzerà per l'autenticazione: something. Da quando hai usato https://git@github.com, Git proverà ad accedere usando il gitnome utente per il quale la tua password ovviamente non funziona. Quindi dovrai usare il tuo nome utente.

L'alternativa è effettivamente utilizzare SSH per l'autenticazione. In questo modo eviterai di dover digitare sempre la password; e dal momento che sembra già funzionare, è quello che dovresti usare.

Per fare ciò, è necessario modificare l'URL remoto, quindi Git sa che deve connettersi tramite SSH. Il formato è allora questo: git@github.com:username/repository. Per aggiornare il tuo URL usa questo comando:

git remote set-url origin git@github.com:username/repository

quando provo il tuo comando ricevo il seguente messaggio warning: remote.origin.url has multiple values. Ciò può essere dovuto al fatto che ho già un tag remoto nel mio file ~ / .gitconfig che contiene il valore [remote "origin"] url=git@github.com:eurydyce/MDANSE.git.
Euridice,

18

prova a spingerlo di nuovo nel tuo ramo. Ciò richiederà nuovamente il nome utente e la password, in modo da poter inserire la password modificata. In modo che la nuova password venga nuovamente memorizzata nella cache.


4
Non sono sicuro del perché questo abbia ottenuto un downvote. Nel mio caso le mie credenziali erano state aggiornate e la seconda ha git pushrichiesto l'aggiornamento appropriato, come indica questa risposta.
Trauma digitale,

Non sono sicuro di cosa volevi dire, non si git push origin master
richiedono

13

Invece di git pullprovare anchegit pull origin master

Ho cambiato la password e il primo comando ha dato l'errore:

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

Successivamente git pull origin master, ha chiesto la password e sembrava aggiornarsi


7

Non è necessario fare affidamento sulla generazione di un token di accesso personale e quindi provare e utilizzare il token di accesso personale al posto della password.

Correzione rapida è quello di impostare l'URL remoto a punto da sshnonhttps .

Fai questo git remote set-url origin git@github.com:username/repository


5

Ricevo questo mentre clonavo l'app da bitbucket:

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

L'ho risolto. Qui devi creare la password per il tuo ID utente

  1. Fai clic su Profilo e impostazioni Fai clic su Profilo e impostazioni

  2. Quindi crea la password dell'app e scegli il nome che genererà la password, incolla quella password sul terminale Crea la password dell'app


4

Disabilitare l'autenticazione a 2 fattori su github ha funzionato per me.

Vedo che esiste una risposta eliminata che dice questo, con il motivo della cancellazione come "non risponde alla domanda". Se funziona, allora penso che risponda alla domanda ...


Questo è strano. Lo stesso è successo con me. Ho appena disabilitato l'autenticazione a due fattori e ora funziona per me. :)
abhijeetps

Questo ha funzionato per me a partire da giugno 2020. Grazie!
Gcamara14

4

L'ho fatto:

$git pull origin master

Quindi ha richiesto il [nome utente] e la [password] e ora sembra funzionare correttamente.


Questo ha funzionato per me. Ho usato fetch invece pull ma comunque non importa. Freddo!
atereshkov,

2

Nel caso in cui venga visualizzato questo messaggio di errore in questa situazione:

  • usando github come impresa
  • usando credential.helper = wincred in git config
  • utilizzando le credenziali di Windows che hai modificato di recente

Quindi guarda questa risposta: https://stackoverflow.com/a/39608906/521257

Windows archivia le credenziali in un gestore credenziali, cancellalo o aggiornalo.


1

Potresti ricevere questo errore perché hai aggiornato la password. Quindi sul Terminale assicurati innanzitutto di cancellare le credenziali di GitHub dal portachiavi e quindi di inviare le modifiche al tuo repository, il terminale ti chiederà il nome utente e la password.


1

Ho avuto lo stesso problema. E l'ho risolto modificando il percorso del ramo remoto da https://github.com/YourName/RepoNamea git@github.com:YourName/RepoName.gitnelle impostazioni del repository dell'app client.


1

Mi imbatto costantemente in questo problema. Assicurati di impostare git --config user.name "" e non il tuo vero nome, cosa che ho fatto alcune volte ..


0

Poiché probabilmente desideri mantenere abilitato 2FA per il tuo account, puoi impostare una chiave ssh e in questo modo non dovrai digitare le tue credenziali di Github ogni volta che vuoi trasferire il lavoro su Github.

Puoi trovare tutti i passaggi di installazione di ssh nella documentazione . Innanzitutto, assicurati di non avere attualmente chiavi ssh (id_rsa.pub, ecc.) Con$ ls -al ~/.ssh


-1
  1. Pannello di controllo
  2. Responsabile delle credenziali
  3. Cerca le opzioni webcredentials e windows credentials
  4. in uno dei due troverai le credenziali github risolverlo con le credenziali corrette
  5. apri una nuova istanza di git bash dovresti essere in grado di eseguire i tuoi comandi git.

Questo ha funzionato per me, sono stato in grado di tirare e spingere nel mio repository remoto.



-3

Questa soluzione ha funzionato per me:

  1. apri il Pannello di controllo
  2. Vai a Gestione credenziali
  3. Fai clic su Credenziali finestra
  4. Nella sezione Credenziali generiche, ci sarebbe git url, aggiorna nome utente e password
  5. Riavvia Git Bash e prova a clonare

1
Questa risposta duplica una risposta esistente che non è utile. Quando hai abbastanza reputazione (15, credo) puoi votare le risposte che ritieni utili. Votare sarebbe la risposta corretta piuttosto che aggiungere questa risposta duplicata.
AdrianHHH,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.