Klucze publiczne i prywatne w SSH – Jak logować się do VPS przez PuTTY bez podawania hasła

0

Przewaga logowania się przy użyciu prywatnych i publicznych kluczy SSH.

Powiedzenie, że coś jest bezpieczne w Internecie byłoby dużym nadużyciem. Jednak są sposoby bardziej i mniej bezpieczne komunikowania się ze swoim serwerem VPS. Jeśli jest on widoczny w sieci (lokalnej lub globalnej) tzn. posiada swój adres IP lepiej jest używać logowania się poprzez parę kluczy zamiast haseł. Jest jeden ważny powód dla którego rozwiązanie logowania się bez użycia hasła jest bardziej bezpieczne. Hasła nawet silne można złamać poprzez tzw. ataki „brute force” czyli brutalnej siły, zaś odczytanie kluczy SSH przy użyciu ataków siłowych graniczy z niemożliwością. Każdy z komputerów z którego i do którego jest wykonywane połączenie posiada parę kluczy prywatno-publicznych (kluczy w rozumieniu matematycznie połączonych algorytmów), które są praktycznie niemożliwe do złamania.

W naszym krótkim poradniku będziemy operowali między innymi następującymi pojęciami:

  • OpenSSH (http://www.openssh.com/), który jest domyślnym wdrożeniem SSH dla systemów –niksowych (Linux, OSX)
  • oraz „klucz SSH” jako tożsame z pojęciem „klucz RSA”

W skrócie mówiąc trudność atakującego w podsłuchaniu lub przejęciu danych logującego się podczas sesji SSH polega na tym, że serwer SSH zainstalowany na maszynie –nixowej (twoim VPS-ie) używa publicznego klucza do „zamknięcia” treści przesyłanych wiadomości w sposób, który jest możliwy do odczytania („otwarcia”) jedynie przy użyciu twojego prywatnego klucza. Dodatkowym czynnikiem zwiększającym bezpieczeństwo może być stosowanie przez użytkowników hasła do klucza prywatnego na maszynie z której jest wykonywane połączenie. Dla wygody użytkownika podczas wielokrotnego łączenia się poprzez PuTTY ze zdalnym serwerem hasła i klucze prywatne mogą być przechowywane w programie Pageant, który jest częścią pakietu PuTTY.

Logowanie przy użyciu kluczy SSH.

Używanie klucza publicznego nie jest ograniczone do jednej maszyny zdalnej. Ten klucz możemy przechowywać na różnych maszynach. Klucz prywatny, który będzie używany do ich otwarcia powinien być przechowywany na twojej maszynie lub na dysku (HDD lub USB), który jest do niej podłączony w trakcie sesji połączenia. W takim przypadku można wyłączyć na zdalnym serwerze/serwerach możliwość łączenia się poprzez użycie nazwy użytkownika i hasła do logowania się na zdalnej maszynie. Takie wyłączenie możliwości logowania się przy użyciu nazwy użytkownika i hasła jest opisane dalej w sekcji „Konfiguracja pliku sshd_config”. Po ustawieniu logowania się wyłącznie przy użyciu kluczy SSH logowanie będzie możliwe tylko dla ludzi/urządzeń posiadających stosowne pary kluczy SSH.

Niezbędne narzędzia

Aby wykonać zadanie konfiguracji programu PuTTY w Windows do bezpiecznego logowania się do zdalnego serwera VPS przy użyciu kluczy SSH będziemy potrzebowali bardzo prostych narzędzi. Zakładamy, że maszyną z której będzie wykonywane połączenie zdalne przy użyciu kluczy SSH będzie komputer zarządzany systemem Windows (7 lub 8.x) zaś serwer zdalny (VPS) będzie działał pod systemem Linux (Ubuntu, CentOS lub inny). W naszym poradniku używamy VPS’a z zainstalowaną najnowszą wersją systemu CentOS (7.0)

Na komputerze Windows będziemy potrzebowali programu PuTTY, który można znaleźć tutaj (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html), oraz PuTTYgen (do generowania pary kluczy RSA) i dodatkowo Pageant (do ewentualnego przechowywanie kluczy i haseł w sesji ). Wszystkie wymienione programy: PuTTY, PuTTYgen i Pageant są dostępne na stronie PuTTY Download Page (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) i są programami darmowymi.
Inne programy przydatne do pracy i ewentualnego otwierania i edycji plików tekstowych w formatach zgodnych z formatami Unix to np.:

  • Notepad++, który można pobrać tutaj: http://notepad-plus-plus.org/download/v6.6.9.html
  • Sublime Text 2, który ma wersję darmową i wersję płatną (nie jest bardzo drogi, i w mojej opinii jest bardzo pożytecznym narzędziem dla programistów) dostępną tutaj: http://www.sublimetext.com/2

Program PuTTY jest tzw. klientem SSH dzięki któremu możemy się zalogować np. do zdalnej maszyny VPS używając pary kluczy wygenerowanych wcześniej przez PuTTYgen. PuTTYgen posiada zdolność konwertowania kluczy PuTTY na format OpenSSH, którego nie wspiera sam PuTTy. Zawiłe? Pewnie nie, ale też nie jest to aż tak istotne dla naszego samouczka. Po prostu należy pamiętać, że PuTTYgen wygeneruje parę kluczy, a PuTTY pozwoli nam się połączyć z serwerem przy jej pomocy.

Krok pierwszy – generowanie pary kluczy SSH

Aby wygenerować zestaw (parę) kluczy RSA przy użyciu PuTTYgen należy wykonać następujące czynności:

  1. Otworzyć program PuTTYgen klikając dwukrotnie na plik wykonywalny puttygen.exe
  2. Wybrać typ klucza do wygenerowanie „SSH-2 RSA”
  3. Wybrać liczbę bitów generowanego klucza poprzez wskazanie wartości 2048 lub 4096 (im wyższa wartość tym trudniej złamać klucz)
  4. Kliknąć guzik „Generate” i przesuwać myszą nieregularnie nad pustym polem „Klucz”
  5. Po pokazaniu się wartości wygenerowanego klucza w tym polu operacja generowania pary kluczy zostanie zakończona, lecz my musimy wykonać dalsze nie mniej istotne kroki.
  6. W polu „Komentarze” możemy wpisać swój krótki komentarz, żeby pamiętać dla którego z serwerów para kluczy została wygenerowana. Jest to szczególnie ważne jeśli generujemy więcej par kluczy niż jedna dla różnych serwerów.
  7. Opcjonalnie – możemy wpisać nasze hasło, które będzie zabezpieczało dostęp do klucza prywatnego. Po wpisaniu wartości tego hasła należy go zapamiętać, a najlepiej zapisać w bezpiecznym miejscu, gdyż bez niego para kluczy nie będzie nic warta.
  8. Następnie należy zapisać klucze publiczny i prywatny w jakimś bezpiecznym miejscu na komputerze lub nośniku zewnętrznym np. pendrive’ie USB.
  9. Zapisane plik klucza prywatnego będą miały rozszerzenie .ppk a publicznego nie mają, żadnego rozszerzenia, ale można je będzie zawsze otworzyć przy użyciu programu Notepad++ lub Sublime text 2 (Uwaga: otwieranie i zapisywanie tych plików w programie MS Word zepsuje te pliki więc nie należy tego robić)
  10. Następnym krokiem będzie skopiowanie zawartości pliku publicznego na nasz serwer zdalny VPS, dlatego możemy pozostawić okno programu PuTTYgen otwarte do czasu zalogowania się na serwer zdalny przy użyciu nazwy użytkownika i hasła. Przejdźmy zatem do następnego kroku i powrócimy do PuTTYgen za chwilę.

UWAGA: Podczas wykonywania tych wszystkich kroków oraz w dalszej części realizowania komend samouczka nie należy zamykać sesji SSH w PuTTY i nie należy wylogowywać się jako zalogowany użytkownik o najwyższych uprawnieniach (root lub inny z grupy sudoers w Ubuntu). Najlepiej otworzyć dodatkowe okno w PuTTY, zalogować się jako root lub użytkownik z uprawnieniami root’a (sudoer) i trzymać to okno otwarte przez cały czas pracując w innym oknie podczas wykonywania komend samouczka.

Dalsza cześć poradnika znajduje się tutaj

PODZIEL SIĘ

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ