Krótko mówiąc, SSH lub „bezpieczna powłoka” to szyfrowany protokół, za pomocą którego można zdalnie połączyć się z serwerem i mieć dostęp do powiązanych z nim informacji. Zapewnia znacznie bezpieczniejszy sposób logowania, aby zapewnić bezpieczny sposób logowania bez narażania bezpieczeństwa.
Krok 1: Utwórz parę kluczy
Zaczniemy od utworzenia pary kluczy w systemie klienta z dostępem roota według typu w następujący sposób:
$ ssh-keygen
Powoduje to, że najnowszy ssh-keygen domyślnie tworzy 3072-bitową parę kluczy RSA. Możesz dodać flagę -b 4086, aby wygenerować większy klucz. Naciśnij Enter, a przechowa parę kluczy w .ssh/ podkatalog. Zauważ, że jeśli jesteś gościem na serwerze, na którym już zainstalowano klucz, pojawi się pytanie, czy chcesz go zastąpić, czy nie. Jeśli tak jest, wpisz „y”, aby zasygnalizować „tak”.
Następnie pojawi się pytanie, czy chcesz dodać hasło. Możesz zrezygnować, ale zalecamy dodanie jednego. Wzmacnia protokół bezpieczeństwa, zapewniając dodatkową warstwę ochrony, aby ominąć nieautoryzowany użytkownik.
Krok 2: Skopiuj klucz publiczny na swój serwer
Następnie musimy przenieść klucz publiczny na twój serwer ubuntu.
Możesz użyć narzędzia ssh-copy-id za pomocą następującego polecenia:
$ ssh-copy-id nazwa_użytkownika@host_serwera
To powinno załatwić sprawę w ciągu kilku sekund. Jeśli klucz został pomyślnie skopiowany, przejdź do trzeciego kroku.
Czasami zdarza się, że metoda ssh-copy-id zawodzi lub jest po prostu niedostępna. W takim przypadku musisz go skopiować za pomocą SSH opartego na haśle. Możesz to zrobić za pomocą polecenia cat i upewnij się, że dodałeś symbol >>, aby dodać do treści zamiast go nadpisywać.
$ kot ~/.ssh/id_rsa.pub | ssh zdalna_nazwa_użytkownika@adres_ip_serwera"mkdir -p ~/.ssh && kot >> ~/.ssh/autoryzowane_klucze"
Jeśli łączysz się z nowym hostem po raz pierwszy, Twój system wyświetli coś takiego:
Po prostu wpisz tak i naciśnij przycisk Enter. Następnie wprowadź hasło do konta dostępu użytkownika, a klucz publiczny zostanie skopiowany na serwer Ubuntu.
W przypadku odmowy dostępu SSH opartego na haśle z jakiegoś powodu, którego nie możesz przypiąć, zawsze możesz po prostu ręcznie skopiować klucz publiczny. Dodaj ~/.ssh/authorized_keys do id_rsa.Publikuj plik na twoim zdalnym komputerze. Następnie zaloguj się na swoje konto serwera zdalnego i sprawdź, czy istnieje katalog ~SSH. Jeśli nie, wpisz:
$ mkdir -p ~/.cisza
Teraz wystarczy dodać klucz:
$ echo public_key_string >> ~/.ssh/autoryzowane_klucze$ chmod -R go= ~/.cisza
Upewnij się również, że używasz ~SSH/ UŻYTKOWNIK katalog i NIE katalog główny:
$ chown -R younis:younis ~/.cisza
Krok 3: Uwierzytelnij klucze SSH
Następnym krokiem jest uwierzytelnienie kluczy SSH na serwerze Ubuntu. Najpierw zaloguj się do zdalnego hosta:
$ nazwa_użytkownika ssh@host_zdalny
Zostaniesz poproszony o wprowadzenie klucza hasła dodanego w kroku 2. Wpisz to i kontynuuj. Uwierzytelnianie zajmie trochę czasu, a po zakończeniu zostaniesz przeniesiony do nowej interaktywnej powłoki na serwerze Ubuntu
Krok 4: Wyłącz uwierzytelnianie hasłem
Po uwierzytelnieniu kluczy SSH nie potrzebujesz już systemu uwierzytelniania hasła.
Jeśli uwierzytelnianie hasłem jest włączone na twoim serwerze, nadal będzie podatne na nieautoryzowany dostęp użytkowników poprzez ataki typu brute force. Więc byłoby lepiej, jeśli wyłączysz uwierzytelnianie oparte na hasłach.
Najpierw sprawdź, czy masz ustawione uwierzytelnianie oparte na kluczu SSH dla korzeń konto na tym serwerze. Jeśli tak, powinieneś zmienić je na konto uprzywilejowanego dostępu użytkownika sudo na tym serwerze, aby dostęp administratora był dla ciebie otwarty w razie nagłej potrzeby lub gdy system ma do czynienia z podejrzanymi działaniami.
Po przyznaniu uprawnień administratora do konta zdalnego dostępu zaloguj się do zdalnego serwera za pomocą kluczy SSH z uprawnieniami root lub sudo. Następnie użyj następującego polecenia, aby uzyskać dostęp do pliku konfiguracyjnego demona SSH:
$ sudo gedit /etc/ssh/sshd_config
Po otwarciu pliku teraz wyszukaj katalog „PasswordAuthentication” i wpisz następujące polecenie, aby wyłączyć uwierzytelnianie hasłem i logowanie SSH oparte na hasłach.
$/etc/ssh/sshd_config…
Hasło Uwierzytelnianie nie
…
Aby zobaczyć te zmiany, musisz ponownie uruchomić usługę sshd za pomocą następującego polecenia:
$ sudo systemctl restart ssh
Na wszelki wypadek otwórz nowe okno terminala i sprawdź, czy usługa SSH działa poprawnie przed zamknięciem bieżącej sesji.
Dzięki zweryfikowanym kluczom SSH powinieneś być w stanie zobaczyć, jak wszystko działa normalnie. Możesz wyjść ze wszystkich obecnych sesji serwera.
Wniosek
Teraz, gdy masz już system uwierzytelniania oparty na kluczu SSH, nie potrzebujesz już wrażliwego systemu uwierzytelniania hasła, ponieważ możesz po prostu zalogować się bez hasła. Mam nadzieję, że ten samouczek okazał się pomocny.