Jak uwierzytelniać się za pomocą SSH za pomocą kluczy zamiast haseł

  • Owen Little
  • 0
  • 3002
  • 433
Reklama

SSH to świetny sposób na uzyskanie zdalnego dostępu do komputera. Podobnie jak FTP, możesz połączyć się przez SSH FTP Czym jest SSH i czym różni się od FTP [Objaśnienie technologii] Czym jest SSH i czym różni się od FTP [Objaśnienie technologii], aby uzyskać bezpieczny dostęp do serwera plików za pomocą ulubionego klienta FTP Master Przesyłanie plików FTP na wszystkich twoich stronach za pomocą FileZilla Master Przesyłanie plików FTP na wszystkich twoich stronach za pomocą FileZilla Duża liczba starych klientów FTP miała problemy z przesyłaniem dużych plików. W aplikacjach występowały zwykłe limity czasu, których można się spodziewać, gdy komputer stoi 15 do…, szybko uzyskując dostęp do zdalnych plików, a nawet instalując dysk sieciowy na komputerze. Ale SSH to coś więcej niż zdalny dostęp do plików. Logowanie się przez SSH w terminalu (lub przy użyciu PuTTY w systemie Windows) daje zdalny dostęp do powłoki (w końcu SSH to skrót od Secure SHell). Tak zarządzam moim serwerem multimediów na odległość.

Po otwarciu portów Co to jest przekierowanie portów i jak może mi pomóc? [MakeUseOf wyjaśnia] Co to jest przekierowanie portów i jak może mi pomóc? [MakeUseOf wyjaśnia] Czy płaczesz trochę w środku, gdy ktoś mówi ci, że jest problem z przekierowaniem portów i dlatego Twoja nowa, błyszcząca aplikacja nie działa? Twoja Xbox nie pozwala ci grać w gry, twoje pobieranie torrentów odmawia… na twoim routerze (dokładnie port 22) możesz nie tylko uzyskać dostęp do serwera SSH z sieci lokalnej, ale z dowolnego miejsca na świecie.

Jednak nie chcesz ryzykować użycia słabego hasła do uwierzytelnienia. Jeśli ktoś uzyska dostęp do twojego komputera przez SSH, uzyska pełny dostęp do powłoki. Żeby było jasne, nie chcemy tego. Na szczęście bardzo łatwo można skonfigurować globalny serwer SSH w bardzo bezpieczny sposób, używając uwierzytelniania opartego na kluczach i całkowicie wyłączając uwierzytelnianie hasła na serwerze.

Czy to dla mnie?

Kuszące jest rozluźnienie bezpieczeństwa osobistego. Jeśli używasz serwera do celów prywatnych, możesz pomyśleć, że ludzie po prostu nie wiedzą o twoim serwerze, a zatem nie będą próbowali go zhakować - bezpieczeństwo przez zaciemnienie. To byłoby bardzo błędne założenie. Ponieważ (większość) ruch SSH jest przesyłany przez port 22, osoby atakujące rutynowo sprawdzają widoczność portu 22 na losowych adresach IP, po czym następuje atak brutalnej siły. Jest to jeden ze sposobów tworzenia botnetów do użycia w atakach DDOS. Co to jest atak DDoS? [MakeUseOf wyjaśnia] Co to jest atak DDoS? [MakeUseOf wyjaśnia] Termin DDoS gwiżdże w przeszłości, ilekroć cyberaktywizm zbiera się w głowie. Tego rodzaju ataki pojawiają się w nagłówkach międzynarodowych z wielu powodów. Problemy, które przyspieszają te ataki DDoS, są często kontrowersyjne lub bardzo… .

Krótko mówiąc: jeśli transmitujesz swój serwer SSH przez Internet (tj. Port przekierowania 22), to tak, to jest dla ciebie.

Idea logowania SSH na podstawie klucza

Logowanie SSH oparte na kluczach opiera się na idei kryptografii klucza publicznego. Zbyt daleko zajęłoby nam wyjaśnienie zawiłości, ale postaramy się namalować prosty obraz tego, co dzieje się za kulisami.

W poniższym procesie komputer kliencki generuje dwa klucze: klucz publiczny i klucz prywatny. Ogólna idea jest taka, że ​​możesz szyfrować dane za pomocą klucza publicznego, ale odszyfrować je tylko za pomocą klucza prywatnego. Umieścimy klucz publiczny na serwerze i poprosimy go o zaszyfrowanie całej komunikacji wychodzącej z nim. Dzięki temu tylko klienci z kluczem prywatnym mogą odszyfrować i odczytać dane.

1. Zainstaluj OpenSSH

Najpierw skonfigurujemy serwer SSH za pomocą OpenSSH. Jeśli masz już uruchomiony serwer SSH i chcesz wiedzieć, jak skonfigurować uwierzytelnianie oparte na kluczach, możesz pominąć ten krok. Użyj ulubionego menedżera pakietów, aby zainstalować aplikację serwera OpenSSH. Najprostszym sposobem może być nadal uruchomienie apt-get polecenie z terminala.

sudo apt-get install openssh-server

Wprowadź hasło, potwierdź i poczekaj minutę, aż zakończy się instalacja. Gratulacje, masz teraz serwer SSH. (To było łatwe!)

Możesz użyć aplikacji w obecnej postaci lub edytować / etc / ssh / sshd_config skonfigurować. Uruchom man sshd_config polecenie w terminalu, aby uzyskać więcej informacji. Innym doskonałym źródłem informacji o OpenSSH jest odpowiednia strona pomocy Ubuntu.

2. Wygeneruj klucze

Wygenerujemy zestaw kluczy. Uruchom następujące polecenia (dostosowane ze strony pomocy OpenSSH / Keys Ubuntu).

mkdir ~ / .ssh
chmod 700 ~ / .ssh
ssh-keygen -t rsa

Pierwsze polecenie tworzy ukryty katalog „.ssh” w folderze domowym, drugie polecenie zmienia uprawnienia dostępu do folderu, podczas gdy trzecie polecenie faktycznie generuje zestaw kluczy RSA. Najpierw zostaniesz poproszony o lokalizację do zapisania kluczy (pozostaw puste i naciśnij Enter, aby zapisać w domyślnej lokalizacji), a następnie po hasło.

To hasło dodatkowo szyfruje klucz prywatny przechowywany na twoim komputerze, zasadniczo dając ci więcej czasu na zabezpieczenie serwera SSH, jeśli twój klucz prywatny zostanie kiedykolwiek skradziony. Upewnij się, że wybierasz hasło, które możesz zapamiętać, ponieważ będziesz musiał je wprowadzić, gdy będziesz próbował użyć klucza.

3. Prześlij klucz publiczny

Następnie musisz przenieść klucz publiczny wygenerowany w poprzednim kroku na komputer serwera SSH. Jeśli na komputerze klienckim działa również system Linux, można to bardzo łatwo osiągnąć, uruchamiając poniższe polecenie (zastępując nazwę użytkownika i adres IP na serwerze SSH).

ssh-copy-id @

Jeśli twój klient nie obsługuje polecenia ssh-copy-id, możesz zamiast tego użyć poniższego polecenia. Jest nieco bardziej skomplikowany, ale zasadniczo osiąga te same wyniki.

cat ~ / .ssh / id_rsa.pub | ssh @ "mkdir ~ / .ssh; cat >> ~ / .ssh / author_keys"

Zostaniesz poproszony o podanie hasła użytkownika do serwera SSH. Jeśli polecenia zostaną wykonane bez błędów, Twój klucz publiczny zostanie skopiowany na serwer.

4. Wyłącz uwierzytelnianie hasła

Zauważ, że twój system wciąż nie jest bezpieczniejszy niż po pierwszym kroku. Chociaż co najmniej jeden klient jest skonfigurowany do korzystania z uwierzytelniania opartego na kluczach, pozostawia to miejsce dla innych klientów na połączenie za pomocą hasła. Aby zakończyć, całkowicie wyłączymy uwierzytelnianie hasła. Po tym kroku, tylko komputery, które przeszły powyższy proces, mogą połączyć się z serwerem SSH.

Aby wyłączyć uwierzytelnianie za pomocą hasła, edytuj / etc / ssh / sshd_config plik w swoim ulubionym edytorze. Jednym z najprostszych sposobów edycji pliku z ograniczeniami jest ponowne użycie Terminalu. (Jestem stronniczą od nano, ale możesz używać wszystkiego, co najbardziej ci odpowiada.)

sudo nano / etc / ssh / sshd_config

Znajdziesz około 40 linii od dołu pliku

#PasswordAuthentication tak

Usuń znak liczbowy (#) i zmień ustawienie na „nie”, jak poniżej.

Hasło Numer uwierzytelnienia

Ostateczny plik powinien wyglądać mniej więcej tak:

Zapisz plik, naciskając CTRL + X. Potwierdź edycję i nazwę pliku, i prawie gotowe. Wystarczy zrestartować serwer SSH, aby uruchomić go z tymi nowymi ustawieniami.

sudo restart ssh

Zauważysz również, że Twój klient przestanie prosić o hasło do odszyfrowania klucza, jeśli uwierzytelnianie hasła zostanie wyłączone na serwerze. Skoro masz już bezpieczny serwer SSH, jak zamierzasz go używać? Jako bezpieczny serwer plików, zdalna powłoka lub do przekazywania innych usług przez SSH? Daj nam znać w sekcji komentarzy poniżej!

Źródło zdjęcia: Shutterstock




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.