Mała instrukcja organizowania dostępu SSH do zdalnego serwera Linux. Przypomnij sobie, że standardową metodą uwierzytelniania użytkownika na serwerze Unix (Linux, FreeBSD) podczas uzyskiwania dostępu przez SSH jest para login i hasło. Ale wejście do nich nie zawsze jest wygodne, szczególnie jeśli jest wiele takich serwerów. Istnieje alternatywa dla tego typu dostępu - organizowanie dostępu SSH za pomocą pary kluczy RSA (publiczny i prywatny) i hasła (które, ogólnie rzecz biorąc, jest opcjonalne).
W tym artykule rozważymy użycie tego typu dostępu, który można wdrożyć za pomocą jednego z najpopularniejszych programów do pracy na SSH - PuTTY.
Do pracy potrzebujemy następujących narzędzi z rodziny PuTTY:
- puttygen.exe - pakiet tworzenia par kluczy
- putty.exe - sam terminal ssh
- pscp.exe - narzędzie do kopiowania plików scp
Wygeneruj parę kluczy RSA
Aby to zrobić, uruchom narzędzie PuTTYgen, upewnij się, że typem klucza jest „SSH-2 RSA„I naciśnij przycisk”Generuj„.
Następnie rozpoczyna się generowanie pary kluczy, a aby wygenerować losową sekwencję, musisz losowo przeciągnąć myszą wokół paska postępu.
W terenie „Kluczowy komentarz” możesz podać opis klucza (będzie wyświetlany podczas uwierzytelniania klucza).
W terenie „Kluczowe hasło” i „Potwierdź hasło” określa hasło do aktywacji klucza (będzie wymagane podczas łączenia). Jeśli nie ustawisz hasła, połączenie zostanie wykonane bez hasła: jest to bardzo wygodne, ale niezbyt bezpieczne, ponieważ aby uzyskać dostęp do serwera, osoba atakująca musi tylko ukraść plik z kluczem prywatnym od Ciebie (dlatego zaleca się zachowanie klucza prywatnego w tajemnicy: na zewnętrznym dysku USB, zaszyfrowanym woluminie itp.).
Następnie naciskamy przyciskiZapisz klucz publiczny„I”Zapisz klucz prywatny„I zapisz odpowiednio klucze publiczne i prywatne w pliku o nazwach, na przykład:”public.key„I”private.ppk„.
Skonfiguruj klucz publiczny na serwerze Linux.
Plik klucza publicznego ”public.key»Musisz skopiować na serwer Linux, z którym chcesz się połączyć. Aby to zrobić, użyj narzędzia pscp.exe. Polecenie kopiowania pliku będzie wyglądać mniej więcej tak:
pscp c: \ key \ public.key [email protected]: / tmp / foo
Następnie skopiowany klucz należy umieścić w katalogu osobistym użytkownika w pliku ~ / .ssh / autoryzowane_klucze .
Aby to zrobić, przejdź do serwera przez SSH (jak zwykle) i uruchom następującą komendę:
$ ssh-keygen -i -f /tmp/foo/public.key >> /home/myuser/.ssh/authorized_keys
gdzie myuser, nazwa użytkownika, który będzie mógł się zalogować przy użyciu tego klucza.
Nie zapomnij również upewnić się, że autoryzacja klucza jest włączona na serwerze. W tym celu w pliku / etc / ssh / sshd_config należy odkomentować:
Uwierzytelnianie RSA tak
Pubkey Uwierzytelnienie tak
AuthorizedKeysFile .ssh / Author_keys
Łączymy się przez SSH za pomocą klucza
Uruchamiamy PuTTY i po lewej stronie ekranu przejdź do Połączenia -> SSH -> Auth.
Znajdź linię „Prywatny klucz plik dla uwierzytelnianie », następnie kliknij przycisk „Przeglądaj” i określ nasz plik za pomocą klucza prywatnego „private.ppk”.
Następnie na karcie głównej podaj nazwę / adres IP naszego serwera Linux i rozpocznij połączenie. Po czym system jak zwykle poprosi o podanie loginu, a następnie hasła klucza (jeśli został określony). Jeśli hasło nie zostanie określone, konsola serwera otworzy się bez hasła.
Aby nie wchodzić w ustawienia Auth i określać plik klucza przy każdym połączeniu, ustawienia można zapisać, do tego służą przyciski Zapisz (zapisz ustawienia PuTTY) i Ładuj (załaduj ustawienia) na karcie głównej. Wszystkie zapisane ustawienia Putty są przechowywane w rejestrze, dzięki czemu można w zasadzie przenieść je z jednego komputera na drugi, po prostu eksportując / importując część rejestru (więcej szczegółów znajduje się w artykule Przenoszenie ustawień PuTTY).
Ponadto, aby nie wprowadzać ręcznie nazwy użytkownika za każdym razem, login użytkownika można również zapisać w PuTTY (Connection \ Data \ Auto-login username).
Jeśli to nie zadziała, analizujemy dziennik /var/log/auth.log na serwerze.