Jak sprawić, aby git nie pytał o hasło do klucza SSH w systemie Windows?
36
Używam git bash i konfiguruję klucz ssh za pomocą ssh-keygen i za każdym razem, gdy robię coś z git repo, pytaj mnie o hasło /c/Users/jankiewj/.ssh/id_rsa. Czy istnieje sposób na wyłączenie tego hasła?
poprosi o hasło w drugim poleceniu i to wszystko. Każda dodatkowa czynność, którą musisz wykonać (która kiedyś wymagała hasła), nie poprosi o hasło (patrz przykład na zrzucie ekranu poniżej):
Muszę go wprowadzić ponownie, jak tylko zamknę git bash ... czy istnieje trwałe rozwiązanie?
Czarny
@Black to na sesję bash, włożyłem to, .bashrcwięc za każdym razem, gdy otwieram git bash, pojawia się monit i dla tej sesji jestem gotowy.
jcubic
Co dokładnie umieścisz w .bashrc? A gdzie jest .bashrc?
Black
Edycja: nieważne, musisz utworzyć plik yourselv, ~/.bashrca następnie wprowadzić do niego wiersze ze swojego postu i zapisać, to wszystko :) thx!
Czarny,
Zamiast używać powyższych wierszy, szczególnie w .bashrc, użyłbym skryptu i umieściłem go w .bash_profilelub .profile. Oto fragment głównej części mojej .bash_profile, powinien rozwiązać ten problem dla każdego, kto wciąż szuka odpowiedzi; jest podobny do odpowiedzi poniżej. Na początku skryptu ładuję mój .bashrc, który, jeśli nie ma zastosowania, po prostu go pomiń. Uwaga: musisz zmienić odniesienia do id_rsadowolnej nazwy prywatnego klucza SSH i być może ścieżki.
Rockin4Life33
7
Nieco lepszym i trwałym rozwiązaniem jest automatyczne uruchomienie ssh-agent podczas otwierania git bash w Windows. Możesz skopiować / wkleić poniżej w .profile lub .bashrc. Wolę umieścić go w pliku .profile
Wstawiłem mój prosty kod .bashrc, czym różni się twoje rozwiązanie? W systemie Windows bash każda powłoka jest niezależna, więc agent nigdy nie działa po uruchomieniu powłoki.
jcubic
Rozwiązanie działa dobrze, umieszczając kod w .bashrc. Monitowanie hasła ssh tylko za pierwszym razem. Bezpiecznie moje życie. Dziękuję Ci.
Ben Asmussen
dzięki, to bardzo uratowało mi życie.
gumuruh
To powinna być naprawdę zaakceptowana odpowiedź, ponieważ przedstawia rozwiązanie, które jest trwałe i lepiej spełnia to, o co, moim zdaniem, wymagało PO.
Richard D
Co mam zrobić, jeśli podczas uruchamiania przypadkowo wpisałem nieprawidłowe hasło? Edycja: Na podstawie superuser.com/a/271673/647110 możesz ssh-add -Dusunąć wszystkie klucze.
Nils Guillermin
1
Nie jestem pewien, czy chcę go polecić, ale kiedy utworzysz klucz i poprosisz o ustawienie hasła, po prostu naciśnij Enter i pomiń hasło.
Wpisz to polecenie git w swojej lokalizacji repozytoriów „ ssh-keygen -p ”. Następnie pojawi się monit o podanie lokalizacji pliku kluczy , starego hasła i nowego hasła (które można pozostawić puste, aby nie było hasła). Nie wpisuj niczego w nowym haśle, spowoduje to usunięcie hasła
Pozostawienie pustego hasła jest niepewne i wielu deweloperów korporacyjnych nie będzie mogło mieć pustego hasła z powodu ograniczeń. To kiepskie obejście, a nie rozwiązanie problemu PO.
Odpowiedzi:
Możesz uruchomić to w git bash:
poprosi o hasło w drugim poleceniu i to wszystko. Każda dodatkowa czynność, którą musisz wykonać (która kiedyś wymagała hasła), nie poprosi o hasło (patrz przykład na zrzucie ekranu poniżej):
źródło
.bashrc
więc za każdym razem, gdy otwieram git bash, pojawia się monit i dla tej sesji jestem gotowy.~/.bashrc
a następnie wprowadzić do niego wiersze ze swojego postu i zapisać, to wszystko :) thx!.bashrc
, użyłbym skryptu i umieściłem go w.bash_profile
lub.profile
. Oto fragment głównej części mojej.bash_profile
, powinien rozwiązać ten problem dla każdego, kto wciąż szuka odpowiedzi; jest podobny do odpowiedzi poniżej. Na początku skryptu ładuję mój.bashrc
, który, jeśli nie ma zastosowania, po prostu go pomiń. Uwaga: musisz zmienić odniesienia doid_rsa
dowolnej nazwy prywatnego klucza SSH i być może ścieżki.Nieco lepszym i trwałym rozwiązaniem jest automatyczne uruchomienie ssh-agent podczas otwierania git bash w Windows. Możesz skopiować / wkleić poniżej w .profile lub .bashrc. Wolę umieścić go w pliku .profile
To rozwiązanie zostało zaczerpnięte z tego artykułu pomocy github
źródło
.bashrc
, czym różni się twoje rozwiązanie? W systemie Windows bash każda powłoka jest niezależna, więc agent nigdy nie działa po uruchomieniu powłoki..bashrc
. Monitowanie hasła ssh tylko za pierwszym razem. Bezpiecznie moje życie. Dziękuję Ci.ssh-add -D
usunąć wszystkie klucze.Nie jestem pewien, czy chcę go polecić, ale kiedy utworzysz klucz i poprosisz o ustawienie hasła, po prostu naciśnij Enter i pomiń hasło.
Spójrz na ten link, aby dowiedzieć się, jak używać
ssh-keygen
: https://help.github.com/articles/working-with-ssh-key-passphrases/Być może
ssh-agent
może ci jakoś pomóc. Ale nie jestem pewien bez znajomości twojego obecnego systemu.źródło
Wpisz to polecenie git w swojej lokalizacji repozytoriów „ ssh-keygen -p ”. Następnie pojawi się monit o podanie lokalizacji pliku kluczy , starego hasła i nowego hasła (które można pozostawić puste, aby nie było hasła). Nie wpisuj niczego w nowym haśle, spowoduje to usunięcie hasła
źródło