Klucze SSH zapewniają większe bezpieczeństwo logowania do serwera poprzez protokół SSH, niż w przypadku użycia samego hasła. W procesie generowane są dwa klucze: prywatny i publiczny. Tak przygotowany klucz publiczny umieszcza się na dowolnym serwerze, który chcemy zabezpieczyć natomiast klucz prywatny wykorzystywany będzie w kliencie jaki wykorzystujemy do połączenia SSH. Prawidłowe uwierzytelnienie nastąpi, gdy klucz prywatny i publiczny będą zgodne. Poniżej opis jak wygenerować parę kluczy SSH w systemach Linux / Mac oraz Windows.
Generowanie kluczy RSA w systemie Linux / Mac
Generowanie kluczy RSA w systemie Windows
Generowanie kluczy RSA w systemie Linux / Mac
Do generowania kluczy SSH w systemach Linux / Mac służy polecenie ssh-keygen, który domyślnie generuje klucz RSA dla protokołu SSH w wersji 2. Aby wygenerować klucze wpisujemy poniższe polecenie:
ssh-keygen -t rsa
Po wykonaniu polecenia powinna pojawić się informacja:
Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa):
W tym momencie jest możliwość wybrania lokalizacji i nazwy pliku gdzie zapisany będzie klucz. Można zostawić wartość domyślną widoczna w nawiasie, lub podać cala ścieżkę, ponieważ w przypadku podania samej nazwy klucz zapisany zostanie w katalogu domowym zalogowanego użytkownika zamiast w katalogu .ssh. W wybranej lokalizacji pojawia się dwa pliki: klucz prywatny (domyślnie id_rsa) oraz publiczny (domyślnie id_rsa.pub). Po wybraniu domyślnej lokalizacji potwierdzając ja klawiszem Enter, powinna pojawić się informacja:
Created directory '~/.ssh'. Enter passphrase (empty for no passphrase):
Na tym etapie należy wpisać frazę zabezpieczającą nasz klucz. Należy przy tym zauważyć, ze fraza ma w założeniu jak najbardziej utrudnić dostęp do klucza prywatnego, w związku z tym warto zastosować kombinacje małych i wielkich liter, cyfr oraz znaków interpunkcyjnych. Zastosowanie takiego schematu znacznie zwiększy bezpieczeństwo.
Po podaniu frazy zabezpieczającej pojawi się prośba o jej powtórzenie:
Enter same passphrase again:
Jeśli podane hasła były zgodne powinna pojawić się poniższa informacja:
Your identification has been saved in ~/.ssh/id_rsa. Your public key has been saved in ~/.ssh/id_rsa.pub. The key fingerprint is: b9:52:22:97:21:b6:42:61:a6:b9:42:62:af:a9:49:ed użytkownik@rootboxsrv The key's randomart image is: +--[ RSA 2048]----+ | + | | = . | |+o. o . | |+o.. o o . | |o ..o + S | |. +. o o . | | + . . . | |o.. . | |o E | +-----------------+
Zgodnie z informacja klucz prywatny znajduje się w lokalizacji ~/.ssh/id_rsa natomiast publiczny w lokalizacji ~/.ssh/id_rsa.pub.
Zawartość pliku z kluczem publicznym mozna dodać do panelu zarządzającego jako klucz SSH. Należy skopiować zawartość otrzymaną z polecenia:
cat ~/.ssh/id_rsa.pub
Jeśli zainstaluje się serwer z tym kluczem to można logować się do serwera przez SSH do serwera używając klucza prywatnego. Instrukcja połączenia z serwerem za pomocą protokołu SSH jest TUTAJ.
Można także samodzielnie dodać klucz SSH do zainstalowanego już wcześniej serwera.
Generowanie kluczy RSA w systemie Windows
Aby wygenerować parę kluczy RSA w systemie Windows można skorzystać z darmowej aplikacji PuTTygen dostępnej bezpłatnie TUTAJ.
Po pobraniu uruchamiamy aplikacje a następnie zaznaczamy opcje SSH-2 RSA oraz podajemy długość klucza 2048 bitów. Następnie wciskamy przycisk Generate.
Na etapie generowania klucza należy poruszać myszka w wyznaczonym polu w oknie programu. Pozwoli to na zebranie losowych danych na podstawie których zostaną wygenerowane klucze.
Po zebraniu losowych danych, w kolejnym oknie należy podać dwukrotnie frazę zabezpieczającą dla generowanych kluczy. Następnie zapisujemy klucz publiczny oraz prywatny.
Wygenerowany klucz publiczny należy dodać do panelu zarządzającego jako klucz SSH. Należy skopiować zawartość klucza zaznaczonego na poniższym zdjęciu:
Klucz prywatny należy dodać do konfiguracji klienta SSH z jakiego korzystamy. Poniżej przedstawiamy przykład okna konfiguracji aplikacji PuTTy.