2011-12-22 19 views
111

ho caricato il mio ~/.ssh/id_rsa.pub-Bitbucket's SSH keys come explained, ma Git mi chiede ancora per la password ad ogni operazione (come git pull). Ho dimenticato qualcosa?Git su Bitbucket: sempre chiesto di password, anche dopo aver caricato il mio SSH chiave pubblica

Si tratta di un archivio privato (fork del repository privata di un'altra persona) e ho clonato in questo modo:

git clone [email protected]:Nicolas_Raoul/therepo.git 

Qui è il mio locale .git/config:

[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = https://[email protected]/Nicolas_Raoul/therepo.git 
[branch "master"] 
     remote = origin 
     merge = refs/heads/master 

Nello stesso ambiente con il stessa chiave pubblica, Git su Github funziona bene.
.ssh è rwx------, .ssh/id_rsa è -rw-------, .ssh/id_rsa.pub è -rw-r--r--

risposta

177

Sei sicuro di clonato utilizzando l'url ssh?

L'url per origine dice url = https://[email protected]/Nicolas_Raoul/therepo.git quindi se sta usando https chiederà la password indipendentemente dalle tue chiavi ssh.

+40

Hai ragione, grazie! Probabilmente ho clonato l'URL sbagliato. Ho sostituito l'URL in '.git/config' con' [email protected]: Nicolas_Raoul/therepo.git' e ora funziona! –

+7

e per cambiare il telecomando usando git http://stackoverflow.com/questions/2432764/how-to-change-a-remote-repository-uri-using-git –

+3

È stato bitbucket a suggerirmi https url durante la creazione di un repository ! Come mai! –

9

Nel caso di richiesta HTTP, è anche e in alternativa possibile incollare le credenziali (con password) direttamente nella url:

http://username:[email protected]/... 

Ciò farà risparmiare il dolore di dare le proprie credenziali ogni volte ancora. Semplice modifica il tuo .git/config (l'url).

+4

Ma non sicuro. E non funziona se la password ha una lettera come '$%' – Gank

15

Come spiegato here, se clone con SSH URL, è non necessario inserire username/password ogni volta che si push/pull. Controllare sopra answer da @manojlds

Ma se si vuole clonare con HTTPS e vogliono evitare di inserendo username/password ogni volta, è possibile memorizzare le credenziali in cache di con sotto comando:

git config --global credential.helper 'cache --timeout 3600'

dove 3600 (secondi) significa 1 ora, è possibile modificarlo secondo le proprie esigenze.

+1

Che mi ha fatto risparmiare un sacco di tempo! Grazie! –

4
+0

Penso che 'Step 1' sia per' Windows' e 'Step 2' sia per' Linux' ma hai dimenticato di menzionarlo correttamente. –

+0

Ho eseguito quei 3 passaggi sulla mia casella di Windows e ha funzionato. – webdev5

+2

In questo caso, vorrei aggiungere che su Linux OS, abbiamo bisogno solo di step2 e step3 per lo stesso effetto :) –

7

Ha già risposto sopra. Riassumerò i passaggi per controllare sopra.

eseguire git remote -v nella dir progetto.Se l'output mostra l'URL remoto che inizia con https://abc allora potresti aver bisogno di username password ogni volta.

Quindi modificare l'URL remoto eseguito git remote set-url origin {ssh remote url address starts with mostly [email protected]:}.

Ora eseguire git remote -v per verificare l'URL remoto modificato.

consultare: https://help.github.com/articles/changing-a-remote-s-url/

1

seguito si presuppone l'accesso di riga di comando tramite iTerm/terminale a bitbucket.

Per MacOS Sierra 10.12.5, il mio sistema ha manifestato un problema equivalente - chiedendo la mia passphrase SSH su ciascuna connessione a bitbucket.

Il problema ha a che fare con gli aggiornamenti di OpenSSH in macOS 10.12.2, descritti qui nello Technical Note TN2449.

È molto bene potrebbe desiderare di personalizzare la soluzione, ma il seguente funziona quando aggiunto al tuo file ~/.ssh/config:

Host * 
    UseKeychain yes 

Per ulteriori informazioni sui file di configurazione ssh, date un'occhiata alla pagine man ssh_config:

% man ssh_config 

Un'altra cosa: c'è una buona write-up su superuserhere che discute questo problema e diverse soluzioni a seconda delle esigenze e messa a punto.

Problemi correlati