Jestem nowy w ssh klucze. Czy ktoś może wyjaśnić, jak działa ssh-agent bash
i ssh-add
?
Muszę zrozumieć jego elementy wewnętrzne w przyszłości.
Jestem nowy w ssh klucze. Czy ktoś może wyjaśnić, jak działa ssh-agent bash
i ssh-add
?
Muszę zrozumieć jego elementy wewnętrzne w przyszłości.
Odpowiedzi:
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ę bash
powł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 bash
powł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 eval
agent 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 .
Ponadto możesz dodać niektóre klucze na początku sesji.
Edytuj ~/.bashrc
plik 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_config
za pomocą MaxAuthTries
wartości.
ssh-add
pomocą „&”? Czy zakładasz, że pliki kluczy prywatnych nie są chronione?