Dodałem klucz ssh do agenta poprzez:
$ ssh-add ~/.ssh/id_rsa_mac
Identity added: /Users/alex/.ssh/id_rsa_mac (/Users/alex/.ssh/id_rsa_mac)
Po ponownym uruchomieniu agenta nie ma już dodanego tego klucza:
$ ssh-add -l
The agent has no identities.
Dlaczego się to stało?
$HOME/.gnupg/private-keys-v1.d
gdy tylko dodasz je za pomocą ssh-add. To naprawdę jest trwałe. Zakładając, że masz nieulotny katalog domowy.Odpowiedzi:
Dodanie kluczy do agenta jest przejściowe. Trwają tylko tak długo, jak długo agent jest uruchomiony. Jeśli go zabijesz lub uruchomisz ponownie, zostaną utracone, dopóki nie dodasz ich ponownie. Ze strony podręcznika
ssh-agent
:macOS Sierra
Począwszy od macOS Sierra 10.12.2 , Apple dodało opcję konfiguracji UseKeychain dla konfiguracji SSH. Możesz włączyć tę funkcję, dodając
UseKeychain yes
do swojego~/.ssh/config
.Brelok OSX
Nie używam OSX, ale znalazłem to pytanie i odpowiedzi na SuperUser zatytułowane: Jak używać pęku kluczy Mac OS X z kluczami SSH? .
Z tego dźwięku możesz zaimportować klucze SSH do pęku kluczy, używając tego polecenia:
Klucze powinny następnie trwać od rozruchu do rozruchu.
Źródło: Super użytkownik - jak używać pęku kluczy Mac OS X z kluczami SSH?
źródło
~/.ssh/id_rsa
. Domyślam się, że to jest lokalizacja twojego pliku kluczy na Linuksie. Możliwe też, że nie używasz standardowego agenta klucza ssh. Istnieją inne, takie jak gnome-keyring-daemon, które mogą mieć różne zachowania.ssh-agent
dodaje automatycznie jakieś klucze. Moim zdaniem tossh-add
odczytuje standardowe lokalizacje lubssh
klienta, jeśli nie używasz agenta./usr/bin/ssh-add -K /path/to/private/key
Jest
ssh-agent
to usługa sesji, która tymczasowo przechowuje klucze dla użytkownika.Głównym celem agenta SSH jest zapamiętanie wersji klucza w postaci jawnego tekstu zabezpieczonej za pomocą hasła. Innymi słowy, klucz jest przechowywany na dysku zaszyfrowanym za pomocą hasła, a właściciel klucza używa
ssh-add
lub jakiegoś narzędzia GUI do dostarczenia hasła i poinstruowania agenta, aby zapamiętał go do momentu zakończenia sesji lub jawnego żądania usunięcia.Jeśli nie używasz hasła i nie używasz przekazywania agentów (co w większości przypadków jest niepewne), wcale nie potrzebujesz agenta . Każdy klient SSH powinien móc odczytać klucz z dysku, albo ze standardowej lokalizacji, albo z wyraźnie określonych lokalizacji.
Standardowe lokalizacje są wymienione na stronie podręcznika
ssh(1)
:Korzystając z niestandardowych lokalizacji, możesz użyć
-i
przełącznikassh
opisanego na tej samej stronie podręcznika lub odpowiedniej opcji w używanym kliencie SSH.źródło
ssh-agent
W Sierra :
Użyj UseKeychain . (Nie próbowałem tego, ale brzmi to jak najbardziej poprawne rozwiązanie).
Lub
Lub utwórz plik plist zamiast dołączać do
~/.bash_profile
.Oświadczenie: jak zauważyli inni, nie wiem, jak bezpieczne jest przechowywanie haseł ssh w pęku kluczy.
źródło