Używam git bash. Muszę użyć
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
za każdym razem, gdy zaczynam nowy git bash.
Czy istnieje sposób na trwałe ustawienie agenta ssh? A może system Windows ma dobry sposób na zarządzanie kluczami SSH?
Jestem nowym facetem, proszę o szczegółowy poradnik, dzięki!
/my/ssh/location/
porównywalne opcje do czegoś podobnego/c/Users/Foobar/.ssh/
?Odpowiedzi:
W sesji git bash, można dodać do skryptu
~/.profile
lub~/.bashrc
( przy~
czym zazwyczaj ustawione%USERPROFILE%
) automatycznie, w celu wspomnianej sesji do uruchomieniassh-agent
. Jeśli plik nie istnieje, po prostu go utwórz.To właśnie opisuje GitHub w artykule „ Praca z hasłami klucza SSH ”.
Sekcja „ Automatyczne uruchamianie agenta ssh w systemie Git dla systemu Windows ” tego artykułu zawiera solidny skrypt, który sprawdza, czy agent działa, czy nie. Poniżej znajduje się tylko fragment, zobacz artykuł GitHub, aby uzyskać pełne rozwiązanie.
Inne zasoby:
„ Uruchamianie ssh-agent do pracy z git run z poziomu powłoki poleceń systemu Windows ” ma podobny skrypt, ale przede wszystkim odniosę się do powyższego artykułu GitHub, który jest bardziej rozbudowany i aktualny.
źródło
PS: Te instrukcje są w kontekście powłoki Bash otwartej w podsystemie Windows 10 Linux i nie wspominają o łączeniu symboli SSH kluczy generowanych w systemie Windows z Bash w systemie Ubuntu w systemie Windows
1) Zaktualizuj swój .bashrc , dodając w nim następujące
2) Następnie uruchom,
$ source ~/.bashrc
aby ponownie załadować plik config.Powyższe kroki pochodzą z https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch
3) Utwórz plik konfiguracyjny SSH, jeśli go nie ma. Użyj następującego polecenia, aby utworzyć nowy:
.ssh$ touch config
4) Dodaj następujące do
~/.ssh/config
5) Dodaj swój klucz do agenta SSH za pomocą polecenia,
$ ssh-add ~/.ssh/id_work_gmail
a następnie powinieneś być w stanie połączyć się z kontem github lub zdalnym hostem za pomocą ssh. Na przykład w kontekście powyższych przykładów kodu:lub
To dodanie klucza do agenta SSH powinno być wymagane tylko raz.
6) Teraz wyloguj się z sesji Bash w podsystemie Windows Linux, tj. Ponownie zamknij wszystkie konsole Bash i ponownie uruchom nową konsolę i spróbuj SSH do swojego hosta Github lub innego hosta skonfigurowanego w pliku konfiguracyjnym SSH i powinno działać bez potrzeby dodatkowego kroki.
Uwaga:
Jeśli napotkasz,
Bad owner or permissions on ~/.ssh/config
zaktualizuj uprawnienia za pomocą poleceniachmod 600 ~/.ssh/config
. Źródła: https://serverfault.com/a/253314/98910Aby powyższe kroki zadziałały, będziesz potrzebować OpenSSH w wersji 7.2 i nowszej . Jeśli masz starszą wersję, możesz ją zaktualizować, wykonując czynności wymienione na stronie https://stackoverflow.com/a/41555393/936494
Te same szczegóły można znaleźć w głównym artykule dotyczącym problemów z agentem SSH podsystemu systemu Windows 10 Linux
Dzięki.
źródło
>> "${SSH_ENV}"
? Czy nie powinno tak być> "${SSH_ENV}"
? Wasze prace oczywiście, ale po prostu kończy się powoli coraz dłuższym~/.ssh/environment
plikiem, z (jak myślę obecnie !?) bez powodu ... Ale wielkie, wielkie dzięki! Uważam, że ten skrypt powinien być dołączony do domyślnej wersji.bashrc
WSL Ubuntu, jest bardzo przydatny!Odkryłem, że najłatwiejszym sposobem osiągnięcia tego jest użycie Pageant jako agenta SSH i plink.
Musisz mieć skonfigurowaną sesję putty dla nazwy hosta używanej w pilocie.
Będziesz także potrzebował pliku plink.exe, który można pobrać z tej samej strony, co kit.
I potrzebujesz programu Pageant działającego z załadowanym kluczem. Mam skrót do konkursu w moim folderze startowym, który ładuje mój klucz SSH po zalogowaniu.
Kiedy instalujesz git-scm, możesz określić, aby używał tortoise / plink zamiast OpenSSH.
Efektem netto jest to, że możesz otworzyć git-bash, kiedy tylko chcesz i push / pull bez wyzwania dla haseł.
To samo dotyczy sesji putty i WinSCP, gdy program konkursowy ma załadowany klucz. To sprawia, że życie jest o wiele łatwiejsze (i bezpieczne).
źródło
Ponieważ nie lubię używać szpachli w systemie Windows jako obejścia, stworzyłem bardzo proste narzędzie ssh-agent-wrapper . Skanuje foldery .ssh i dodaje wszystkie klucze do agenta. Aby działał, wystarczy umieścić go w folderze startowym systemu Windows.
Założenia :
źródło
Nie mogłem zmusić tego do pracy w oparciu o najlepszą odpowiedź, prawdopodobnie dlatego, że jestem takim noobem z komputera i brakuje mi czegoś oczywistego. Ale po prostu do Twojej wiadomości na wypadek, gdyby pomogło to komuś takiemu jak ja, to, co W KOŃCU zadziałało, to jeden z linków tutaj (wymienionych w odpowiedziach). Wymagało to po prostu wklejenia następujących elementów do mojego
.bash_profile
:Prawdopodobnie skonfigurowałem coś dziwnego, ale nie powiodło się, gdy dodałem to do mojego
.profile
lub.bashrc
. Innym prawdziwym wyzwaniem, z którym się spotkałem, jest to, że nie jestem administratorem na tym komputerze i nie mogę zmieniać zmiennych środowiskowych bez uzyskania ich zatwierdzenia przez IT, więc jest to rozwiązanie dla tych, którzy nie mają do niego dostępu.Wiesz, że to działa, jeśli po otwarciu git bash pojawi się monit o podanie hasła ssh. Alleluja w końcu zadziałało.
źródło
Umieść to w swoim ~ / .bashrc (lub pliku, który pochodzi z tego źródła), co uniemożliwi jego wielokrotne niepotrzebne uruchamianie na powłokę:
Następnie dodaj „AddKeysToAgent yes” do ~ / .ssh / config:
ssh na twój serwer (lub git pull) normalnie i będziesz proszony o hasło / hasło tylko raz na sesję.
źródło
Utwórz nowy plik .bashrc plik w swoim katalogu ~.
Tam możesz umieścić swoje polecenia, które chcesz wykonywać za każdym razem, gdy uruchamiasz bash
źródło
.bashrc
pliku (na przykładecho test
i sprawdź, czy jest ładowany po uruchomieniu Git Bash..bashrc
w folderze użytkownika, npC:\Users\john
.Proste rozwiązanie dwustrunowe z tej odpowiedzi :
Dla sh , bash itp .:
W przypadku csh , tcsh itp .:
źródło