Come si ripristinano le credenziali archiviate in "git credential-osxkeychain"?


98

Ho seguito le istruzioni di GitHub per configurare il mio account e sono in grado di clonare, ma non sono in grado di eseguire il push da remoto.

Quando eseguo un "git push" ottengo l'errore 403. Ha l'URL corretto. Ho provato un "git credential-osxkeychain get" per vedere cosa stava dando, e questo stampa le credenziali sbagliate.

Credo che quello che è successo sia la prima volta che ha chiesto le credenziali, ho pensato che fosse un'altra applicazione che chiedeva e ha inserito quelle sbagliate.

Devo solo ripristinarlo in modo che utilizzi l'elemento portachiavi corretto per il mio account GitHub.

Ho provato:

git credential-osxkeychain erase
git credential-osxkeychain set

Il programma non fornisce mai alcun prompt. Set dirà "cattivo input" se non faccio la cosa giusta. Ho provato a inserire " password=password", ecc., Ma poi quando eseguo un "get" ottengo ancora quelli vecchi.

Non riesco a capire dove vengono archiviati, poiché non sono in .gitconfigure. Inoltre non ci sono articoli portachiavi recenti che potrebbero essere. (Ho diversi account GitHub nel mio portachiavi e non ne utilizza nessuno.)




Risposte:


122

Dal Terminal:

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

NOTA: dopo aver inserito "protocol = https" sopra è necessario premere ~~ RETURN ~~ DUE VOLTE


2
Per qualche motivo non sono riuscito a trovare alcuna credenziale Git / GitHub nell'app Keychain, ma ha funzionato. Grazie!
Donald

4
Dato che questo non mi era chiaro: devi inserire tutte e 3 le righe sopra, quindi premere di nuovo Invio - cioè le righe 2/3 sopra non vengono emesse dal comando, ma input.
Frederik

Questa risposta mi ha aiutato. Grazie mille!
Ken Flake

70

Non sono sicuro di come cancellare tramite la riga di comando, ma è abbastanza facile farlo tramite l'app Accesso Portachiavi. Vai su Applicazioni -> Utilità -> Accesso portachiavi, quindi inserisci "github.com". Puoi eliminare l'elemento non valido o aggiornare la password da con l'app.


4
Se qualcuno che sta leggendo questo capisce come fare dalla riga di comando, sarebbe bello saperlo.
funroll

1
@funroll Lo strumento della riga di comando è security. La pagina man afferma che ha un delete-internet-passwordcomando.
benzado

Grazie per l'aggiornamento, sono sicuro che sarà utile a qualcuno.
funroll

questa è la soluzione migliore
Elias Fazel

Da quale portachiavi?
Bryan Bryce

28

La soluzione si è rivelata questa:

Il comando git credential-osxkeychainutilizzava la prima voce dell'account GitHub nel mio portachiavi. Questo non era quello che aveva accesso ai progetti in questione.

Ho risolto il problema toccando l'account in Accesso Portachiavi in ​​modo che la sua data fosse cambiata (penso di aver appena cambiato il commento) e ora che è diventato l'account GitHub più recente è diventato il primo restituito a credential-osxkeychain, e quindi tutto ha funzionato .

Una forma migliore di supporto per più account GitHub sarebbe utile, ma è probabile che la maggior parte delle persone abbia un solo account principale e non incappi in questo problema.


2
Non sono sicuro di come funzioni per più utenti sullo stesso host, ma potresti controllare ssh e utilizzare un ~/.ssh/configfile invece di utilizzare il portachiavi OSX. Questo viene utilizzato nei casi in cui potresti avere più chiavi ssh per host diversi (e anche account pensanti). nerderati.com/2011/03/17/…
jusopi

10

git-credential-osxkeychain memorizza le password nel portachiavi Apple, come indicato sopra.

Per impostazione predefinita, gitcredentials considera solo il nome di dominio. Se desideri che Git consideri il percorso completo (ad esempio se hai più account GitHub), imposta la useHttpPathvariabile su true, come descritto su http://git-scm.com/docs/gitcredentials.html . Tieni presente che la modifica di questa impostazione richiederà nuovamente le tue credenziali per ogni URL.


7

Su Mac, usa il comando git credential-osxkeychain erase.

OPPURE rimuovere manualmente dal portachiavi da ApplicazioniUtilitàAccesso portachiavi . Quindi rimuovere il portachiavi github.com. Quindi utilizzare push; chiederà l'accesso al portachiavi; poi negare.

Chiederà il nuovo nome utente e password, lo aggiungerà quindi invierà un file per quello.

Dopo git pushaver trovato questo errore. Quindi uso il problema delle maiuscole:

remoto: autorizzazione a user1 / file.git negata a user2 (utente esistente in precedenza). irreversibile: impossibile accedere a " https://github.com/xxxxxxxxxxxx/ ": L'URL richiesto ha restituito l'errore: 403



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.