klucze ssh ssh-agent bash i ssh-add


28

Jestem nowy w ssh klucze. Czy ktoś może wyjaśnić, jak działa ssh-agent bashi ssh-add?

Muszę zrozumieć jego elementy wewnętrzne w przyszłości.


Czy wypróbowałeś najlepszy hit Google dla któregokolwiek z tych warunków?
Daniel Beck

Tak. Nie dostałem żadnych przydatnych informacji. Mój zły
maneeshshetty

Odpowiedzi:


44

Agent to program, który trzyma klucze w pamięci tak, że trzeba tylko odblokować je raz , zamiast za każdym razem. ssh-agent robi to dla kluczy SSH.

Typowe metody uruchamiania ssh-agent to:

  • eval `ssh-agent`- uruchamia to agenta w tle i ustawia odpowiednie zmienne środowiskowe dla bieżącej instancji powłoki.

    ( ssh-agent , po uruchomieniu bez argumentów, wyświetla polecenia do interpretacji przez powłokę).

  • exec ssh-agent bash- uruchamia nową instancję bashpowłoki, zastępując obecną.

    (Przy jednym lub większej liczbie argumentów ssh-agent nie wypisuje niczego, ale uruchamia określone polecenie: w tym przypadku bashpowłokę, ale technicznie może to być cokolwiek.)

    Druga metoda jest czasami preferowana, ponieważ automatycznie zamyka ssh-agent po zamknięciu okna terminala. (Po uruchomieniu go evalagent pozostałby uruchomiony, ale niedostępny).

Jednak to uruchamia tylko pustego agenta. Aby faktycznie był użyteczny, musisz użyć ssh-add , który odblokowuje twoje klucze (zwykle ~/.ssh/id_*) i ładuje je do agenta, czyniąc je dostępnymi dla połączeń ssh lub sftp .


3
Czy istnieje sposób, aby jednorazowo uruchomić ssh-agent w wielu sesjach bash?
Asim

9

Ponadto możesz dodać niektóre klucze na początku sesji.

Edytuj ~/.bashrcplik i dodaj:

ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null  # start ssh-agent if not present
[ $? -eq 0 ] && {                                     # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null        # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null        # Load key 2
}

Sprawdź swoje klucze za pomocą ssh-add -l

Możesz zatrzymać bieżącą sesję agenta ssh za pomocą ssh-agent -k

Coś, co należy wiedzieć o ssh-agent i .bashrc, to nie ładowanie zbyt wielu kluczy. Domyślna liczba prób demona ssh jest ograniczona do 6. Można to zmienić /etc/ssh/sshd_configza pomocą MaxAuthTrieswartości.


1
Co z hasłem klucza prywatnego podczas uruchamiania za ssh-addpomocą „&”? Czy zakładasz, że pliki kluczy prywatnych nie są chronione?
Luciano,

Powyższy kod pyta o hasło dwa razy, raz podczas sprawdzania, czy ssh-agent jest dostępny i ponownie po załadowaniu klucza prywatnego.
Tapan Chandra
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.