Staram się, aby następujące polecenia były automatycznie wykonywane podczas logowania do mojego serwera za pośrednictwem ssh:
ssh-agent /bin/bash
ssh-add ~/.ssh/id_rsa
Mój klucz ssh ma hasło i nie mam nic przeciwko wprowadzeniu go raz podczas logowania.
Próbowałem umieścić to w moim pliku .bashrc, jednak uważam, że ssh-agent rozpoczyna nową sesję bash. Kiedy próbuję się zalogować po tym, jak mam to w moim .bashrc, blokuje się i muszę wpisać „exit”, aby zobaczyć komunikat „enter passsphrace to unlock key”
Jakieś inne sugestie?
Serwer działa Ubuntu LTS
git pull
na zdalnym serwerzeOdpowiedzi:
Możesz spróbować dodać to:
W ten sposób
ssh-agent
nie uruchamia nowej powłoki, po prostu uruchamia się w tle i wyrzuca polecenia powłoki, aby ustawić odpowiednie zmienne środowiskowe.Jak powiedziano w komentarzu, być może nie chcesz wcale uruchamiać agenta na zdalnym hoście, ale raczej na urządzeniu, z którego pracujesz, i używać
aby przekazać usługi lokalnego agenta ssh do zdalnego hosta.
Ze względów bezpieczeństwa powinieneś używać przekazywania agentów tylko na hostach prowadzonych przez osoby godne zaufania, ale jest to lepsze niż zdalne uruchamianie pełnego agenta w dowolnym momencie.
źródło
ssh-agent /bin/bash
zssh-agent -s
, a następnie staram się robićgit pull
, jestem ciągle prosił o hasłem klucza prywatnego, aby go odblokować. To nie jest tak naprawdę to, czego chcę, chcę tylko wprowadzić hasło podczas robienia ssh-add i nie muszę go powtarzać za każdym razem, gdy uruchamiam jakieś polecenia git. Jakieś pomysły?Jedną z możliwości jest użycie pęku kluczy Funtoo . Następnie możesz przykleić ten liner do skorupy bash:
To samo robi (uruchamia agenta ssh itp.), Nie uruchamiając również procesu ssh-agent dla każdej podpowłoki. Zamiast tego szuka „już uruchomionych” instancji, które posiadasz i dołącza do nich.
źródło