Przeczytałem i śledziłem dokumentację online, jak skonfigurować agenta ssh, aby nie musiałem wpisywać hasła za każdym razem, gdy ssh do zdalnego komputera.
Jednak przy pomocy ssh-agent nadal muszę to robić przy ssh-add
każdym ponownym uruchomieniu powłoki. ssh-add
Pyta mnie wprowadzić hasło, aby odblokować klucz prywatny.
Enter passphrase for key '/home/xx/.ssh/id_rsa':
Zamiast wpisywać hasło do komputera zdalnego, pojawia się monit o wpisanie hasła do klucza prywatnego. To tak, jakby wyjść z czyśćca i potem znalazłem się w piekle. Wygląda na to, że id_rsa jest tylko tymczasowo dodawany do agenta ssh w sesji , ponieważ za każdym razem loguję się i piszę ssh-add -l
. Dostaję:
The agent has no identities.
Czy mogę zapytać, jak trwale przechowywać klucz (id_rsa) w ssh-agent? Dzięki
EDYCJA: to właśnie zrobiłem ssh-agent
. Dołączyłem następujący blok~/.bash_profile
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
ssh-add
ma efekt, który trwa dłużej niż okno powłoki, w którym go wpisałeś.ssh-agent
w poście.Odpowiedzi:
Zainstalowałem pęku kluczy.
sudo apt-get install pęku kluczy
Jeśli korzystasz z bash, musisz dodać kilka poleceń do swojego .bash_profile Jeśli nie masz .bash_profile, utwórz je w swoim katalogu domowym. Dodaj te linie:
Na początku dnia roboczego zaloguję się. Kiedy otworzę terminal, raz zostaniesz poproszony o moje hasło. W przypadku wszystkich innych nowych terminali i połączeń nie będę więcej proszony o podanie hasła.
źródło
ssh-add
w terminalu?To, czego szukasz, jest mniej bezpieczne, ale można to osiągnąć przy użyciu uwierzytelniania za pomocą klucza publicznego bez potrzeby korzystania z ssh-agent. Bardziej bezpieczną opcją jest użycie uwierzytelniania klucza publicznego za pomocą hasła podczas wyłączania uwierzytelniania hasła na serwerze ssh, ale nie o to prosiłeś. Zobacz link u dołu tej odpowiedzi, aby uzyskać instrukcje, jeśli zdecydujesz się to zrobić.
Aby korzystać z ssh bez pytania o hasło, musisz wygenerować parę kluczy, pozostawiając puste pole hasła.
Aby sprawdzić, czy wygenerowałeś już parę kluczy, sprawdź, czy w katalogu ~ / .ssh znajdują się pliki id_rsa i id_rsa.pub. Jeśli już tam są, możesz je usunąć lub przenieść, aby utworzyć nową parę kluczy.
Uwaga: jeśli je usuniesz, utracisz dostęp do wszystkich używanych serwerów ssh, a następnie starych kluczy do uwierzytelnienia, jeśli uwierzytelnianie hasła jest wyłączone na serwerze.
Aby utworzyć nową parę kluczy, uruchom następujące polecenie:
Zaakceptuj domyślną lokalizację kluczy i pozostaw puste hasło.
Aby przekazać swój klucz publiczny serwerowi SSH, z którym chcesz się połączyć, użyj następującego polecenia:
Po wykonaniu tych kroków będziesz mógł zalogować się na serwerze zdalnym bez hasła z komputera, którego używasz.
Odniesienie: http://tombuntu.com/index.php/2008/02/20/public-key-authentication-for-ssh-made-easy/
źródło
Jakiś czas temu nagle zacząłem prosić o hasło, aby odblokować mój klucz ssh podczas działania
git push
. Okazało się, że aby przestać być proszonym o hasło, wystarczyło dodać SSH Key Agent (GNOME Keyring: SSH Agent) do Aplikacji Autostartowych (w moim przypadku - po prostu zaznaczyć pole wyboru):źródło