Spróbuj ssh-add, musisz ssh-agenturuchomić i trzymać swój klucz prywatny
(Ok, odpowiadając na zaktualizowane pytanie, najpierw uruchamiasz, ssh-keygenaby 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-agentw tle podczas logowania. Po zalogowaniu chodzi o to, aby uruchomić ssh-addraz 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-agentzwykle 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-addlub sshoboje 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-addraz. Spróbuj uruchomić ssh-addi 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 .profilei 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
}
.agentPlik 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-adda jeśli się nie powiedzie, uruchom agenta.
1. A nawet lokalny i zdalny sudoz odpowiednim rozszerzeniem pam.