Utworzyłem klucze zgodnie z instrukcją github, zarejestrowałem je w github i spróbowałem jawnie użyć ssh-agent - jednak git nadal prosi mnie o moje hasło za każdym razem, gdy próbuję wykonać pull lub push.
wyloguj się z serwera, ssh z powrotem, uruchom git pull, ponownie poproś mnie o hasło.
cyber8200
35
ssh-add -Kzachowa go po zamknięciu i ponownym otwarciu, przechowując go w pęku kluczy użytkownika.
Kirk
72
@Kirk ssh-add -Kpodaje:unknown option -- K usage: ssh-add [options] [file ...] Options: -l List fingerprints of all identities. -L List public key parameters of all identities. -k Load only keys and not certificates. -c Require confirmation to sign using identities -t life Set lifetime (in seconds) when adding identities. -d Delete identity. -D Delete all identities. -x Lock agent. -X Unlock agent. -s pkcs11 Add keys from PKCS#11 provider.
Zdarzyło mi się to po ponownym uruchomieniu od aktualizacji z OS X El Capitan (10.11) do macOS Sierra (10.12). ssh-addRozwiązanie pracował tymczasowo, ale nie utrzymują się na inny restarcie.
Stałym rozwiązaniem była edycja (lub tworzenie) ~/.ssh/configi włączenie UseKeychainopcji.
Jeśli próbowałeś ssh-addi nadal pojawia się monit o podanie hasła, spróbuj użyć ssh-add -K. To doda Twoje hasło do pęku kluczy.
Aktualizacja: jeśli używasz macOS Sierra, prawdopodobnie musisz zrobić kolejny krok, ponieważ powyższe może już nie działać. Dodaj następujące elementy do ~/.ssh/config:
Dla przyszłego odniesienia, to również działa z zsh. Po prostu dodaj to do.zshrc
Arda,
2
Wydaje mi się, że zakłada się, że plik klucza jest nazywany id_rsa. Jeśli masz niestandardową nazwę, powinieneś użyć np. /usr/bin/ssh-add ~/.ssh/custom_filename
Juha Untinen,
2
Czy możesz wyjaśnić, co się stało z tym skryptem?
LeeR
2
@Lee uruchamia ssh-agent, jeśli jeszcze nie działa, co gwarantuje, że nie będziesz pytał o hasło ssh przy każdym wypychaniu (mniej więcej).
Roland
To po prostu uruchamia ssh-agent i dodaje klucz przy każdym logowaniu. Nadal musisz podać hasło przy każdym logowaniu. Na przykład, jeśli masz skrypty ssh-shing i wykonujące polecenia GIT, niestety nie jest to w ogóle przydatne.
Trainoasis
27
W systemie Windows zadziałało (sklonowałem kod z repozytorium 1st):
eval $(ssh-agent)
ssh-add
git pull
w którym momencie poprosił mnie po raz ostatni o moje hasło
Miałem podobny problem, ale inne odpowiedzi nie rozwiązały mojego problemu. Pomyślałem, że pójdę naprzód i opublikuję to na wypadek, gdyby ktoś inny miał taką nieprzyzwoitą konfigurację jak ja.
Okazuje się, że miałem wiele kluczy, a Git najpierw używał niewłaściwego. Poprosiłoby mnie o podanie hasła i wpisałbym je, a następnie Git użyłby innego klucza, który działałby (że nie musiałem wpisywać hasła).
Właśnie usunąłem klucz, którego używał, aby poprosić mnie o hasło, a teraz działa!
Byłoby miło dodać informacje o tym, jak rozwiązać pierwszy problem Jeff Welling.
ranu
5
Jeśli powyższe rozwiązania nie działają dla mnie, jedną rzeczą do sprawdzenia jest to, czy faktycznie masz klucz publiczny (zwykle id_rsa.pub). Nie jest to niezwykłe, ale to było dla mnie przyczyną.
Aby utworzyć swój klucz publiczny z klucza prywatnego:
Odpowiedzi:
Po uruchomieniu agenta SSH z:
Musisz dodać do niego swój klucz prywatny:
Spowoduje to podanie hasła tylko raz, a następnie powinieneś mieć możliwość wypychania, pod warunkiem, że przesłałeś klucz publiczny do Github.
Aby trwale zapisać klucz w systemie macOS:
Spowoduje to utrwalenie go po zamknięciu i ponownym otwarciu poprzez zapisanie go w pęku kluczy użytkownika.
źródło
git pull
, ponownie poproś mnie o hasło.ssh-add -K
zachowa go po zamknięciu i ponownym otwarciu, przechowując go w pęku kluczy użytkownika.ssh-add -K
podaje:unknown option -- K usage: ssh-add [options] [file ...] Options: -l List fingerprints of all identities. -L List public key parameters of all identities. -k Load only keys and not certificates. -c Require confirmation to sign using identities -t life Set lifetime (in seconds) when adding identities. -d Delete identity. -D Delete all identities. -x Lock agent. -X Unlock agent. -s pkcs11 Add keys from PKCS#11 provider.
-K
jest specyficzny dla jabłek. Zobacz help.github.com/articles/…Zdarzyło mi się to po ponownym uruchomieniu od aktualizacji z OS X El Capitan (10.11) do macOS Sierra (10.12).
ssh-add
Rozwiązanie pracował tymczasowo, ale nie utrzymują się na inny restarcie.Stałym rozwiązaniem była edycja (lub tworzenie)
~/.ssh/config
i włączenieUseKeychain
opcji.Powiązane: macOS ciągle pyta o moje hasło ssh od czasu aktualizacji do Sierra
źródło
ssh-add -K /Users/***/.ssh/git/id_rsa
ale nadal nie działało po ponownym uruchomieniu terminala ... dziękuję.Jeśli próbowałeś
ssh-add
i nadal pojawia się monit o podanie hasła, spróbuj użyćssh-add -K
. To doda Twoje hasło do pęku kluczy.Aktualizacja: jeśli używasz macOS Sierra, prawdopodobnie musisz zrobić kolejny krok, ponieważ powyższe może już nie działać. Dodaj następujące elementy do
~/.ssh/config
:źródło
Spróbowałbym następujących rzeczy:
~/.bashrc
plikźródło
zsh
. Po prostu dodaj to do.zshrc
id_rsa
. Jeśli masz niestandardową nazwę, powinieneś użyć np./usr/bin/ssh-add ~/.ssh/custom_filename
W systemie Windows zadziałało (sklonowałem kod z repozytorium 1st):
w którym momencie poprosił mnie po raz ostatni o moje hasło
Kredyty: rozwiązanie pochodzi z /unix/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket
źródło
Spróbuj dodać to do ~ / .ssh / config :
... zakładając, że twój klucz prywatny nosi nazwę id_rsa
źródło
Miałem podobny problem, ale inne odpowiedzi nie rozwiązały mojego problemu. Pomyślałem, że pójdę naprzód i opublikuję to na wypadek, gdyby ktoś inny miał taką nieprzyzwoitą konfigurację jak ja.
Okazuje się, że miałem wiele kluczy, a Git najpierw używał niewłaściwego. Poprosiłoby mnie o podanie hasła i wpisałbym je, a następnie Git użyłby innego klucza, który działałby (że nie musiałem wpisywać hasła).
Właśnie usunąłem klucz, którego używał, aby poprosić mnie o hasło, a teraz działa!
źródło
Wygląda na to, że masz problemy z samym agentem SSH. Spróbuję to rozwiązać.
1) Czy zrobiłeś ssh-add, aby dodać swój klucz do SSH?
2) Czy zamykasz okno terminala między użytkami, ponieważ jeśli zamkniesz okno, będziesz musiał ponownie wprowadzić hasło po ponownym otwarciu.
źródło
Jeśli powyższe rozwiązania nie działają dla mnie, jedną rzeczą do sprawdzenia jest to, czy faktycznie masz klucz publiczny (zwykle
id_rsa.pub
). Nie jest to niezwykłe, ale to było dla mnie przyczyną.Aby utworzyć swój klucz publiczny z klucza prywatnego:
źródło
Próbuję różnych rozwiązań, ale nic nie pomaga. Ale te kroki ( Moje środowisko GitBash SSH zawsze pyta o moje hasło, co mogę zrobić? ) Ze szwów Bitbucket.com działa dobrze:
Chodzi o to:
tworzysz
~/.bashrc
plikdodaj skrypt śledzenia:
uruchom ponownie Bash
źródło
Innym możliwym rozwiązaniem, o którym nie wspomniano powyżej, jest sprawdzenie pilota za pomocą następującego polecenia:
Jeśli pilot nie zaczyna się od git, ale zaczyna się od https, możesz zmienić go na git, postępując zgodnie z poniższym przykładem.
źródło