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.