2011-12-22 7 views
111

Przesłałem moją ~/.ssh/id_rsa.pub do Bitbucket's SSH keys jako explained, ale Git wciąż prosi mnie o podanie hasła przy każdej operacji (takiej jak git pull). Przegapiłem coś?Git na Bitbucket: Zawsze pytałem o hasło, nawet po załadowaniu mojego publicznego klucza SSH

To jest prywatna repozytorium (widelec innej osoby prywatnej repozytorium) i sklonowany to tak:

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

Oto mój lokalny .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 

w tym samym środowisku z ten sam klucz publiczny, Git na Github działa dobrze.
.ssh jest rwx------, .ssh/id_rsa jest -rw-------, .ssh/id_rsa.pub jest -rw-r--r--

Odpowiedz

177

Czy jesteś pewien, że sklonowane go za pomocą URL ssh?

Adres urodzenia mówi url = https://[email protected]/Nicolas_Raoul/therepo.git, więc jeśli używa protokołu https, poprosi o hasło niezależnie od kluczy ssh.

+40

Masz rację, dzięki! Najprawdopodobniej klonowałem z niewłaściwym adresem URL. Zmieniłem adres URL w '.git/config' na' [email protected]: Nicolas_Raoul/therepo.git', a teraz działa! –

+7

i zmienić pilota za pomocą git http://stackoverflow.com/questions/2432764/how-to-change-a-remote-repository-uri-using-git –

+3

To był bitbucket, który zasugerował mi adres URL https podczas tworzenia repozytorium ! Dlaczego! –

9

W przypadku żądania HTTP, to również i alternatywnie można wkleić poświadczenia (z hasłem) bezpośrednio pod adresem:

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

To pozwoli zaoszczędzić ból znów dać swoje poświadczenia co razy. W prosty sposób zmodyfikuj swój plik .git/config (adres URL).

+4

Ale nie jest bezpiecznie. I nie działa, jeśli hasło ma jakąś literę jak '$%' – Gank

15

Jak wyjaśniono here, jeśli sklonować z SSH url, ty nie trzeba wpisać login/hasło za każdym razem, gdy pociągnięcie /. Sprawdzić powyżej answer przez @manojlds

Ale jeśli chcesz sklonować z HTTPS i chcą uniknąć wprowadzając login/hasło za każdym razem, można przechowywać dane uwierzytelniające do cache z poniższej komendy:

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

gdzie 3600 (sekundy) oznacza 1 godzinę, możesz to zmienić zgodnie z wymaganiami.

+1

To jak zaoszczędziło mi dużo czasu! dzięki! –

4
+0

Myślę, że 'Krok 1' jest dla' Windows' i 'Krok 2' dla' Linuksa', ale zapomniałeś go poprawnie wspomnieć. –

+0

Uruchomiłem te 3 kroki na moim okienku systemu Windows i działało. – webdev5

+2

W tym przypadku chciałbym dodać, że w systemie Linux OS potrzebujemy tylko kroku 2 i kroku 3 dla tego samego efektu :) –

7

To już odpowiedź powyżej. Podsumuję kroki, aby sprawdzić powyżej.

uruchom git remote -v w projekcie reż.Jeśli na wyjściu jest wyświetlany adres URL zdalny zaczynający się od https://abc, możesz potrzebować hasła nazwy użytkownika za każdym razem.

Aby zmienić zdalny adres URL, należy: git remote set-url origin {ssh remote url address starts with mostly [email protected]:}.

Teraz uruchom git remote -v, aby zweryfikować zmieniony zdalny adres URL.

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

1

następuje zakłada dostęp wiersza poprzez Iterm/Terminalu bitbucket.

Dla MacOS Sierra 10.12.5, mój system zamanifestował równoważny problem - z prośbą o podanie mojego hasła SSH na każdym połączeniu z bitbucket.

Problem dotyczy aktualizacji OpenSSH w systemie Mac OS 10.12.2, które są opisane tutaj w dokumencie Technical Note TN2449.

Jesteś bardzo dobrze chcieć dostosować swoje rozwiązanie, ale dodaje zadziała po dodaniu do pliku ~/.ssh/config:

Host * 
    UseKeychain yes 

Więcej informacji na temat configs ssh, spójrz Pod strony man dla ssh_config:

% man ssh_config 

Jeszcze jedno: nie jest to dobry write-up na administratorahere który omawia ten problem i różne rozwiązania w zależności od potrzeb i konfiguracji.

Powiązane problemy