Przesłana ~/.ssh/id_rsa.pub
do kluczy SSH Bitbucket jest jak wyjaśniono , ale Git wciąż pyta o hasło przy każdej operacji (na przykład git pull
). Przegapiłem coś?
Jest to prywatne repozytorium (rozwidlenie prywatnego repozytorium innej osoby) i sklonowałem je w następujący sposób:
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 tym samym kluczem publicznym Git na Github działa dobrze.
.ssh
jest rwx------
, .ssh/id_rsa
jest -rw-------
, .ssh/id_rsa.pub
jest-rw-r--r--
.git/config
z[email protected]:Nicolas_Raoul/therepo.git
a teraz to działa!ssh://[email protected]/userName/repoName.git
- bezssh://
prefiksu nie działało.Jak wyjaśniono tutaj , jeśli klonujesz z adresem URL SSH , nie musisz wprowadzać nazwy użytkownika / hasła za każdym razem, gdy naciskasz / ciągniesz. Sprawdź powyższą odpowiedź przez @manojlds
Ale jeśli chcesz sklonować za pomocą HTTPS i chcesz uniknąć wpisywania nazwy użytkownika / hasła za każdym razem, możesz przechowywać poświadczenia w pamięci podręcznej za pomocą poniższego polecenia:
git config --global credential.helper 'cache --timeout 3600'
gdzie 3600 (sekund) oznacza 1 godzinę, możesz to zmienić zgodnie ze swoimi wymaganiami.
źródło
manecs-MBP:LocationTracker manec$ git remote -v origin https://[email protected]/Vysh1/locationtracker.git (fetch) origin https://[email protected]/Vysh1/locationtracker.git (push)
To już odpowiedział powyżej. Podsumuję kroki do sprawdzenia powyżej.
uruchom
git remote -v
w projekcie reż. Jeśli wynik pokazuje zdalny adres URL zaczynający się odhttps://abc
, być może za każdym razem będziesz potrzebować hasła do nazwy użytkownika.Aby zmienić zdalne uruchamianie adresu URL
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/
źródło
Witajcie Googlersi z przyszłości.
W MacOS> = High Sierra klucz SSH nie jest już zapisywany w KeyChain z powodów .
Ponowne użycie również
ssh-add -K
nie przeżywa.Oto 3 możliwe rozwiązania .
Z powodzeniem zastosowałem pierwszą metodę. Został utworzony plik o nazwie
config
w~/.ssh
:źródło
config
pliku/.ssh
działa idealnie!cd ~/.ssh
+ls
+nano config
(plik został już utworzony) + dodaj kod w odpowiedzi Vaiden. Następnie kontroluj X + Y, aby zapisać plik.W przypadku żądania HTTP można również i alternatywnie wkleić poświadczenia (z hasłem) bezpośrednio w adresie URL:
Pozwoli to zaoszczędzić bólu, aby ponownie podawać swoje dane uwierzytelniające. Wystarczy zmodyfikować .git / config (adres URL).
źródło
$%
777
: zatrzymywanie, myślenie, badanie, rozumienie, a następnie robienie tego poprawnie.Żadna z tych odpowiedzi mi nie pomogła, okazało się, że mój problem był nieco inny. Przed wysłaniem klucza to ssh prosiło o hasło za każdym razem. Musiałem więc połączyć moje hasło z tym poleceniem:
Następnie wyświetli monit o podanie hasła i zapisanie go. Może to być rozwiązanie, którego szukasz, jeśli za każdym razem pojawi się monit o podanie hasła
Więcej informacji tutaj
UWAGA: Użyłem tego z powodzeniem na moim komputerze Mac, ale jak zauważył @Rob Kwasowski poniżej,
K
opcja wielkich liter jest unikalna dla komputerów Mac. Jeśli nie na Macu, będziesz musiał używać małych literk
(co prawdopodobnie działa również na Macu, ale nie testowałem).źródło
k
ssh-add -k ~/.ssh/id_rsa
k
, a nie wielkie litery, ponieważ w tych opcjach rozróżniana jest wielkość liter .-K
jest specyficzna dla Mac: help.github.com/en/articles/error-ssh-add-illegal-option----kKrok 1: Zainstaluj git-credential-winstore
https://confluence.atlassian.com/bitbucketserver/permanently-authenticating-with-git-repositories-776639846.html
Krok 2: git config --global credential.helper 'cache - timeout 3600'
To zapisze twoje hasło przez 1 godzinę
źródło
Step 1
jestWindows
iStep 2
jest,Linux
ale zapomniałeś o tym wspomnieć poprawnie.Poniżej zakłada się dostęp z wiersza poleceń za pośrednictwem iTerm / Terminal do bitbucket.
W systemie MacOS Sierra 10.12.5 mój system wykazywał równoważny problem - pytając o moje hasło SSH przy każdym połączeniu z bitbucket.
Problem dotyczy aktualizacji OpenSSH w macOS 10.12.2, które są opisane tutaj w nocie technicznej TN2449 .
Bardzo dobrze możesz dostosować swoje rozwiązanie, ale następujące działania będą działać po dodaniu do pliku ~ / .ssh / config:
Aby uzyskać więcej informacji na temat konfiguracji ssh, zajrzyj na strony podręcznika dla ssh_config:
Jeszcze jedna rzecz: tutaj jest dobry opis superużytkownika , który omawia ten problem i różne rozwiązania w zależności od potrzeb i konfiguracji.
źródło
Sklonowałem repozytorium za pomocą adresu URL HTTPS zamiast adresu URL SSH, dlatego nawet po dodaniu klucza SSH prosiłem mnie o hasło do Bash Shell.
Właśnie edytowałem
./.git/config
plik i zmieniłem wartośćurl
zmiennej, po prostu zamieniająchttps://
nassh://
Na przykład
Zmienić na:
źródło
Może być konieczne dwukrotne sprawdzenie pliku tożsamości SSH. Być może kierujesz BitBucket, aby spojrzeć na inny / niepoprawny klucz prywatny do równoważnego klucza publicznego, który zapisałeś na BitBucket.
Sprawdź za pomocą
tail ~/.ssh/config
- zobaczysz coś podobnego do:Pamiętaj, że dodanie dodatkowych tożsamości (takich jak praca i dom) można wykonać za pomocą
ssh-add
polecenia, na przykład:Po potwierdzeniu, który klucz prywatny jest sprawdzany lokalnie, możesz wziąć swój publiczny odpowiednik, w tym przypadku:
I wklej ten szyfr na BitBucket. Twoje wypychania git będą teraz (pod warunkiem, że używasz klonu SSH, jak wspomniano powyżej), bez hasła, ponieważ twoje urządzenie jest rozpoznawalne jako przyjazne.
Mam nadzieję, że to pomoże komuś to wyjaśnić.
źródło
Ze mną, chociaż uruchomiłem 'git clone ssh: //[email protected]: 7999 / projName / projA.git' Wciąż pojawiał się monit o hasło do nowego repo, które sklonowałem, więc porównując jego .git / config do innych działających repozytoriów. Okazało się, że jest to adres URL w sekcji [zdalne „pochodzenie”], dla nowej repozytorium został ustawiony na ścieżkę ssh powyżej, ale dla działającego ustawiony był https: xxx .
źródło
Miałem inne dziwactwa związane z logowaniem. Natknąłem się na coś, co wydawało się całkowicie głupie, ale działało w moim przypadku. Po prostu przejdź do pęku kluczy MacOS. Znajdź ikonę blokady logowania na pasku bocznym. Kliknij, aby się wylogować, a następnie kliknij, aby się zalogować. Brzmi głupio, ale rozwiązało to moje problemy. Warto spróbować.
źródło