Generowanie i używanie kluczy SSH

PuTTY i PuTTYgen
Przejdźmy więc do generowania i używania kluczy w PuTTY. Po instalacji odpalamy PuTTYgen, pojawi się okno:
Po wciśnięciu guzika Generate w oknie pojawi się informacja o tym, by poruszać kursorem myszy nad pustym obszarem okna:
Kiedy już wykonamy wystarczająco dużo ruchów i pasek postępu dojdzie do końca zawartość okna znowu się zmieni:
Zasady są bardzo podobne jak w przypadku konsoli: tu również możemy dodać komentarz, dzięki któremu klucz będzie identyfikowalny (Key comment) oraz passphrase. Kiedy już wypełnimy pola (na obrazku powyżej widać, że są uzupełnione, zaraz po wygenerowaniu są puste) możemy zapisać klucze używając guzików Save public key oraz Save private key. Trzeba jednak zwrócić uwagę na to, że PuTTY zapisuje klucze w swoim własnym formacie – klucz prywatny ma rozszerzenie .ppk i potrzebny nam będzie jeśli chcemy łączyć się z serwerem przez PuTTY. Jeśli jednak używamy PuTTYgen tylko po to, by wygenerować klucze i używać ich gdzie indziej, to powinniśmy zapisać prywatny klucz dla OpenSSH, w tym celu należy wybrać z menu opcję Conversions → Export OpenSSH key, natomiast klucz publiczny widoczny jest w ramce (nad polem Key fingerprint). Istnieje też możliwość skonwertowania w drugą stronę – można zaimportować klucz prywatny w formacie OpenSSH za pomocą przycisku Load i zapisać go w formacie PuTTY używając guzika Save private key.
Zauważyć można też, że PuTTY również umożliwia wybór typu klucza (ssh-1 rsa, ssh-2 rsa oraz ssh-2 dsa) oraz zmianę jego długości.
Połączenia ssh z użyciem PuTTY wymagają ciut innej konfiguracji, gdyż nie bazują automatycznie na kluczach trzymanych w katalogu domowym. Każde połączenie należy skonfigurować w głównym oknie PuTTY:
W polu Host name (or IP address) wpisujemy nazwę/adres serwera, podajemy port (domyślnie 22), upewniamy się, że zaznaczony jest typ połączenia SSH, a ustawienia możemy zapisać podając nazwę w polu Saved Sessions i klikając guzik Save. Są to niestety zbyt ograniczone ustawienia, by cieszyć się połączeniem bezhasłowym, więc musimy zrobić ciut więcej. Wchodzimy w dział Connection → Data, gdzie znajduje się pole Auto-login username i wpisujemy tam swój identyfikator użytkownika
Następnie w Connection → SSH → Auth wybieramy wygenerowany wcześniej klucz – niestety PuTTY wymaga w tym polu klucza w formacie .ppk
Te ustawienia zapisujemy tak jak wcześniej, w głównej zakładce Session. Jeśli chcemy nadpisać ustawienia, po prostu podajemy tą samą nazwę konfiguracji. Pozostaje kwestia passphrase. Dla PuTTY odpowiednikiem ssh-agent jest Pageant. Po otworzeniu go klikamy guzik Add key, po czym zostaniemy poproszeni o passphrase jak poniżej:
Po podaniu prawidłowego passphrase zobaczymy nasz klucz na liście i dzięki temu powinniśmy już móc łączyć się z serwerem podwójnie klikając w nazwę naszej zapisanej sesji na liście w oknie głównym PuTTY (lub używając guzika Open). Jeśli widzimy monit o passphrase, to należy sprawdzić w ustawieniach sesji PuTTY, czy w zakładce Connection → SSH → Auth zaznaczona jest opcja Attempt authentication using Pageant.
UWAGA: starałem się uwzględnić w notce różne warianty, z passphrase, bez niego, przy pierwszym lub ponownym połączeniu, ciężko jest jednak zredagować wszystko tak, by było jednym uniwersalnym sposobem na wygenerowanie kluczy i połączenie z serwerem poprzez protokół ssh. W razie problemów postaram się pomóc 🙂
Warto wiedzieć:
- długość klucza ma znaczenie w kontekście bezpieczeństwa, nie ma jednak wpływu na szybkość komunikacji z serwerem, gdyż klucz używany jest tylko do uwierzytelnienia na samym początku połączenia – później sesja przebiega już normalnie.
- Protokół SSH w wersji 2 nie jest kompatybilny z protokołem SSH-1 ze względu na wiele zmian wprowadzonych w trakcie jego rozwoju, np. w zasadach szyfrowania
- Używając maszyny A możemy łączyć się z maszyną B, na której (już jako użytkownik maszyny B) możemy również wygenerować klucze i łączyć się dalej do maszyny C itd.
Kategoria:Użyteczne
Przekaż dalej:
Polecam ci dokument "securing ssh by passwordless logons" oraz changelog od putygen (bo generowane klucze nim zwykle sa odwracalne). Generalnie klucze powinny miec passprase na sobie a by nie podawac tego ciagle popatrz na ssh-agent i keychain na lin lub peagent na win (PS nie czytalemn calego wpisu wiec ja wspomniales o tym to sorki)
Poza keychain to o reszcie owszem, wspomniałem 🙂
wiem – doczytalem pozniej :).
keychain laczy sie do ddzialajacego ssh-agent w tle (wiec dla kazdej powloki nie starujesz ssh-agent) plus daje inne sunkcje jak np zabicie wszystkich agentow (security) itp.