Spróbuj ssh-add
, musisz ssh-agent
uruchomić i trzymać swój klucz prywatny
(Ok, odpowiadając na zaktualizowane pytanie, najpierw uruchamiasz, ssh-keygen
aby wygenerować klucz publiczny i prywatny, jak wyjaśnił Jefromi . Umieszczasz klucz publiczny na serwerze. Powinieneś użyć hasła, jeśli nie masz odpowiednika zwykłego -tekstowe hasło w kluczu prywatnym. Ale kiedy to zrobisz, potrzebujesz ze względów praktycznych, jak wyjaśniono poniżej).ssh-agent
Chcesz się uruchamiać ssh-agent
w tle podczas logowania. Po zalogowaniu chodzi o to, aby uruchomić ssh-add
raz i tylko jeden raz, aby dać agentowi twoje hasło, aby zdekodować klucz. Agent następnie po prostu siedzi w pamięci z odblokowanym i załadowanym kluczem, gotowy do użycia za każdym razem, gdy gdzieś ssh.
Wszystkie polecenia ssh-family 1 skonsultują się z agentem i automatycznie będą mogły użyć twojego klucza prywatnego.
W systemach OSX (err, macOS ), GNOME i KDE ssh-agent
zwykle uruchamiany jest automatycznie. Przejdę do szczegółów, na wypadek gdybyś, podobnie jak ja, miał Cygwin lub inne środowisko Windows, w którym z pewnością nie zostanie to zrobione.
Kliknij tutaj: man ssh-agent
.
Istnieją różne sposoby automatycznego uruchamiania agenta. Jak wyjaśnia strona podręcznika, możesz go uruchomić, aby był rodzicem wszystkich innych procesów sesji logowania. W ten sposób zmienne środowiskowe, które udostępnia, będą automatycznie znajdować się we wszystkich twoich powłokach. Po (późniejszym) wywołaniu ssh-add
lub ssh
oboje będą mieli dostęp do agenta, ponieważ wszystkie one mają zmienne środowiskowe z nazwami ścieżek magicznych lub cokolwiek innego.
Alternatywnie, możesz uruchomić agenta jako zwykłe dziecko, zapisać ustawienia środowiska w pliku i źródło tego pliku w każdej powłoce, gdy się uruchomi.
Moje systemy OSX i Ubuntu automatycznie wykonują konfigurację uruchamiania agenta, więc wszystko, co muszę zrobić, to uruchomić się ssh-add
raz. Spróbuj uruchomić ssh-add
i sprawdź, czy to działa, jeśli tak, to musisz to zrobić tylko raz przy ponownym uruchomieniu.
Mój system Cygwin potrzebował tego ręcznie, więc zrobiłem to w sobie .profile
i mam .bashrc
źródło .profile
:
. .agent > /dev/null
ps -p $SSH_AGENT_PID | grep ssh-agent > /dev/null || {
ssh-agent > .agent
. .agent > /dev/null
}
.agent
Plik jest tworzony automatycznie przez skrypt; zawiera definicje i eksport zmiennych środowiskowych. Powyższe próbuje źródła pliku .agent, a następnie próbuje ps(1)
agenta. Jeśli to nie działa, uruchamia agenta i tworzy nowy plik agenta. Możesz także uruchomić, ssh-add
a jeśli się nie powiedzie, uruchom agenta.
1. A nawet lokalny i zdalny sudo
z odpowiednim rozszerzeniem pam.