Reklama
SSH to świetny sposób na uzyskanie zdalnego dostępu do komputera. Podobnie jak w przypadku FTP, możesz połączyć się przez FTP SSH Czym jest SSH i czym różni się od FTP [Wyjaśnienie technologii] Czytaj więcej aby uzyskać bezpieczny dostęp do serwera plików ze swoim ulubionym Klient FTP Opanuj transfery plików FTP we wszystkich swoich witrynach za pomocą FileZillaDuża liczba starych klientów FTP miała problemy z przesyłaniem dużych plików. Aplikacje doświadczyły zwykłych limitów czasu, których można się spodziewać, gdy komputer jest tam przez 15 do... Czytaj więcej , szybki dostęp do zdalnych plików, a nawet montowanie dysku sieciowego na komputerze. Ale SSH to coś więcej niż zdalny dostęp do plików. Logowanie przez SSH w Terminalu (lub używanie Kit w systemie Windows) zapewnia zdalny dostęp do powłoki (w końcu SSH jest skrótem od Secure SHell). W ten sposób zarządzam serwerem mediów na odległość.
Kiedy ty otwórz porty Co to jest przekierowanie portów i jak może mi pomóc? [Użyj wyjaśnień] 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 będzie działać? Twój Xbox nie pozwala ci grać w gry, twoje pobieranie torrentów odmawia... Czytaj więcej na swoim routerze (dokładnie na porcie 22) możesz nie tylko uzyskać dostęp do serwera SSH z sieci lokalnej, ale także z dowolnego miejsca na świecie.
Nie chcesz jednak ryzykować używania słabego hasła do uwierzytelniania. Jeśli ktokolwiek uzyska dostęp do twojego komputera przez SSH, uzyska pełny dostęp do powłoki. Żeby było jasne, to nie jest coś, czego chcemy. Na szczęście bardzo łatwo jest skonfigurować globalny serwer SSH w bardzo bezpieczny sposób, korzystając z uwierzytelniania opartego na kluczu i całkowicie wyłączając uwierzytelnianie hasłem na serwerze.
Czy to dla mnie?
Kuszące jest rozluźnienie się z bezpieczeństwem osobistym. Jeśli używasz serwera do celów prywatnych, możesz pomyśleć, że ludzie po prostu nie wiedzą o twoim serwerze i dlatego nie będą próbować go włamać — bezpieczeństwo przez niejasność. To byłoby bardzo błędne założenie. Ponieważ (większość) ruchu SSH jest przesyłana na porcie 22, osoby atakujące rutynowo sprawdzają widoczność portu 22 na losowych adresach IP, po czym następuje atak brute force. Jest to jeden ze sposobów tworzenia botnetów do użytku w Ataki DDOS Co to jest atak DDoS? [Użyj wyjaśnień]Termin DDoS mija, gdy cyberaktywizm masowo podnosi głowę. Tego rodzaju ataki trafiają na pierwsze strony gazet z wielu powodów. Problemy, które przyspieszają ataki DDoS, są często kontrowersyjne lub bardzo... Czytaj więcej .
Krótko mówiąc: jeśli transmitujesz swój serwer SSH przez Internet (tj. Przekieruj port 22), to tak, to jest dla Ciebie.
Idea logowania SSH opartego na kluczu
Logowanie SSH oparte na kluczu opiera się na idei kryptografia klucza publicznego. Wyjaśnienie zawiłości zajęłoby nam zbyt daleko, ale spróbujemy 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 dane można zaszyfrować kluczem publicznym, ale odszyfrować je tylko kluczem prywatnym. Umieścimy klucz publiczny na serwerze i poprosimy go o szyfrowanie 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 tylko wiedzieć, jak skonfigurować uwierzytelnianie oparte na kluczu, możesz pominąć ten krok. Użyj swojego ulubionego menedżera pakietów, aby zainstalować aplikację serwera OpenSSH. Najprostszym sposobem nadal może być uruchomienie apt-get polecenie z Terminala.
sudo apt-get install openssh-server
Wprowadź swoje 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 bez zmian lub edytować /etc/ssh/sshd_config
aby go skonfigurować. Uruchom człowiek sshd_config
polecenie w Terminalu, aby uzyskać więcej informacji. Innym świetnym źródłem informacji o OpenSSH jest odpowiednia strona pomocy Ubuntu.
2. Generuj klucze
Wygenerujemy zestaw kluczy. Uruchom następujące polecenia (zaadaptowane z OpenSSH/Klucze Strona pomocy Ubuntu).
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
Pierwsze polecenie tworzy ukryty katalog „.ssh” w twoim folderze domowym, drugie polecenie zmienia uprawnienia dostępu do folderu, podczas gdy trzecie polecenie faktycznie generuje zestaw RPA Klucze. Najpierw zostaniesz poproszony o podanie lokalizacji, w której chcesz zapisać klucze (pozostaw puste i naciśnij Enter, aby zapisać w domyślnej lokalizacji), a następnie o 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 wybrałeś hasło, które jesteś w stanie zapamiętać, ponieważ będziesz musiał je wprowadzić, gdy spróbujesz użyć klucza.
3. Przenieś klucz publiczny
Następnie musisz przenieść klucz publiczny wygenerowany w poprzednim kroku na komputer serwera SSH. Jeśli na twoim komputerze klienckim działa również system Linux, można to bardzo łatwo osiągnąć, uruchamiając poniższe polecenie (zastępując
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 zawiły, ale zasadniczo osiąga te same wyniki.
kot ~/.ssh/id_rsa.pub | cisza @ "mkdir ~/.ssh; cat >> ~/.ssh/authorized_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łem
Zauważ, że Twój system nadal nie jest bezpieczniejszy niż po kroku pierwszym. Chociaż co najmniej jeden klient jest skonfigurowany do korzystania z uwierzytelniania opartego na kluczu, nadal pozostawia to miejsce innym klientom na połączenie za pomocą hasła. Na koniec całkowicie wyłączymy uwierzytelnianie hasłem. Po tym kroku tylko komputery, które przeszły powyższy proces, mogą połączyć się z serwerem SSH.
Aby wyłączyć uwierzytelnianie hasłem, edytuj /etc/ssh/sshd_config
plik w swoim ulubionym edytorze. Jednym z najłatwiejszych sposobów edycji pliku z ograniczeniami jest ponowne użycie Terminala. (Jestem słabością do nano, ale możesz użyć tego, z czym czujesz się najbardziej komfortowo.)
sudo nano /etc/ssh/sshd_config
Znajdziesz około 40 wierszy od dołu pliku
#PasswordUwierzytelnianie tak
Usuń znak numeryczny (#) i zmień ustawienie na „nie”, jak poniżej.
Hasło Uwierzytelnianie nie
Ostateczny plik powinien wyglądać mniej więcej tak:
Zapisz plik, naciskając klawisze CTRL+X. Potwierdź edycję i nazwę pliku, a prawie gotowe. Po prostu uruchom ponownie 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 twojego klucza, jeśli uwierzytelnianie hasłem jest wyłączone na serwerze. Teraz, gdy masz bezpieczny serwer SSH, jak zamierzasz z niego korzystać? Jako bezpieczny serwer plików, zdalną powłokę lub do przekazywania innych usług przez SSH? Daj nam znać w sekcji komentarzy poniżej!
Kredyt obrazu: Shutterstock
Jestem pisarzem i studentem informatyki z Belgii. Zawsze możesz wyświadczyć mi przysługę dobrym pomysłem na artykuł, rekomendacją książki lub pomysłem na przepis.