
George Richardson
0
1480
165
Ten krótki samouczek pokazuje studentom i nowym użytkownikom, jak skonfigurować serwer OpenSSH do uwierzytelniania za pomocą klucza lub uwierzytelniania bez hasła. Ta konfiguracja umożliwia użytkownikom serwera Ubuntu logowanie się przez SSH bez wpisywania haseł.
Jest to znacznie bezpieczniejsza alternatywa dla uwierzytelniania za pomocą hasła SSH. W przypadku uwierzytelniania hasłem za każdym razem, gdy użytkownik chce się zalogować, musi zawsze wpisać hasło. Kolejną słabością jest to, że hasło może odgadnąć każdy.
W przypadku uwierzytelniania za pomocą klucza żadne hasło nie jest nigdy wpisywane. Dozwolone są tylko komputery klienckie z poprawną parą kluczy pasującą do serwera.
Aby skonfigurować SSH z uwierzytelnianiem za pomocą klucza, wykonaj poniższe czynności:
Krok 1: Wygeneruj klucz SSH dla każdego użytkownika
Aby zalogować się za pomocą uwierzytelniania klucza SSH, musisz najpierw wygenerować parę kluczy. Tworzone są dwa klucze: jeden publiczny, a drugi prywatny. Klucz prywatny musi pozostać na serwerze, a klucz publiczny musi być bezpiecznie udostępniony klientom.
Zaloguj się przez SSH jako użytkownik, którego chcesz skonfigurować, a następnie uruchom poniższe polecenia, aby wygenerować parę kluczy SSH.
ssh-keygen -t rsa
Po wyświetleniu monitu naciśnij klawisz Enter, aby zaakceptować domyślną lokalizację przechowywania kluczy… domyślnie jest ona zapisywana w katalogu domowym użytkownika w ukrytym folderze .ssh.
richard @ ubuntu1704: ~ $ ssh-keygen -t rsa Generowanie pary kluczy publicznych / prywatnych rsa. Podaj plik, w którym chcesz zapisać klucz (/home/richard/.ssh/id_rsa): Wejdź do utworzonego katalogu '/home/richard/.ssh'. Wprowadź hasło (puste, brak hasła): Enter Wprowadź ponownie to samo hasło: Enter Twoja identyfikacja została zapisana w /home/richard/.ssh/id_rsa. Twój klucz publiczny został zapisany w /home/richard/.ssh/id_rsa.pub.
Krok 2: Udostępnij klucz publiczny komputerowi klienckiemu
Po utworzeniu powyższej pary kluczy, klucz publiczny o nazwie id_rsa.pub będą przechowywane w ~ / .ssh /. Folder o nazwie Authorized_keys zostanie również utworzony w tym katalogu. Serwer SSH przeszukuje plik ~ / .ssh / autoryzowane_klucze dla wszystkich autoryzowanych kluczy, które mogą logować się do serwera.
Tak więc uruchom poniższe polecenia, aby przenieść utworzony powyżej klucz publiczny do pliku ~ / .ssh / plik autoryzowanych_kluczy.
mv ~ / .ssh / id_rsa.pub ~ / .ssh / Authorized_keys
Po uruchomieniu powyższych poleceń zaloguj się do komputera klienckiego… miejmy nadzieję, że inny komputer z systemem Linux i uruchom poniższe polecenia, aby skopiować klucz publiczny na komputer kliencki.
mkdir ~ / .ssh scp richard @ nazwa_serwera: /home/richard/.ssh/id_rsa ~ / .ssh /
Klucz należy skopiować na komputer klienta.
Krok 3: Zaloguj się do SSH bez hasła
Po uzyskaniu klucza do komputera klienckiego zaloguj się do serwera i otwórz domyślny plik konfiguracyjny SSH, uruchamiając poniższe polecenia
sudo nano / etc / ssh / sshd_config
Następnie wprowadź wyróżnione zmiany poniżej i zapisz plik.
# Aby wyłączyć tunelowane hasła w postaci zwykłego tekstu, zmień tutaj na nie! PasswordAuthentication nie ChallengeResponseAuthentication no UsePAM tak #PermitEmptyPasswords nie
Zapisz plik i uruchom ponownie SSH
sudo systemctl zrestartuj ssh
Chroń swoje klucze.
Na serwerze uruchom poniższe polecenia, aby chronić klucze SSH.
chmod 600 ~ / .ssh / autoryzowane_klucze
Teraz na serwer będą wpuszczani tylko klienci z pasującą parą kluczy. Aby się połączyć, uruchom poniższe polecenia, zastępując nazwę_serwera oryginalnymi serwerami.
ssh richard @ nazwa_serwera
Zaloguje się bez wpisywania hasła.
Jeśli możesz uzyskać klucz do komputera z systemem Windows, możesz również użyć PuTTY do automatycznego logowania.
Ciesz się ~