Jak skonfigurować klucze SSH w Linux

Jak skonfigurować klucze SSH w Linux

SSH lub Secure Shell to protokół wykorzystany do umożliwienia komunikacji między dwoma komputerami i udostępniania danych. Zapewnia uwierzytelnianie z obsługą hasła lub bez hasła (wyłączone) i szyfruje komunikację między dwoma hostami. Podczas pracy z serwerami CentOS przez większość czasu spędza się w terminalu połączonym z serwerem za pośrednictwem SSH.

W tym przewodniku skupimy się na konfigurowaniu uwierzytelnienia opartego na klawiszach SSH dla serwera CentOS 8. Klucze SSH oferują prostą, stałą technikę komunikacji ze zdalnymi serwerami i są zachęcane dla wszystkich użytkowników.

Tworzenie klawiszy SSH w Linux

Aby wygenerować nową parę klawiszy RSA 2048, otwórz terminal i wykonaj poniższe polecenie:

ssh-keygen  

Po naciśnięciu ENTER zobaczysz następujące dane wyjściowe:

Jeśli naciśniesz Enter, domyślnie zapisz pary klawiszy w .SSH subdirectory swojego folderu_home. Możesz także podać alternatywną ścieżkę miejsca, w którym chcesz zapisać parę kluczy, ale zaleca się użycie domyślnego katalogu, aby zapisać parę kluczy:

Jeśli wcześniej utworzyłeś parę kluczy na komputerze klienta, zostaniesz poproszony o jego zastąpienie. Wybierz tak lub nie, ale uważaj, aby wybrać opcję „Y”. Jeśli wybierzesz opcję „Y”, nie będziesz mógł użyć poprzedniej pary kluczy, aby zalogować się na serwerze.

Teraz zostaniesz poproszony o dostarczenie hasła do dodania dodatkowej warstwy bezpieczeństwa, która uniemożliwia nieautoryzowanym użytkownikom dostęp do serwera. Po prostu naciśnij Enter, jeśli nie chcesz podać żadnej frazy:

Po dostarczeniu pensy, zobaczysz następujące dane wyjściowe:

Teraz z powodzeniem wygenerowałeś parę klucza SSH, aby zweryfikować to uruchomienie poniższego komendy:

ls -l ~/.ssh/id_*.pub  

Polecenie podane powyżej wyświetli ścieżkę do pliku zawierającego parę klucza SSH. Jeśli wyświetla błąd, taki jak „brak takiego pliku lub katalogu”, oznacza to, że para kluczowych nie została pomyślnie utworzona i będziesz musiał powtórzyć proces ponownie.

Dodanie klucza SSH do systemu zdalnego

Po utworzeniu pary kluczy musisz dodać klucz SSH do serwera Centos. Najszybszym sposobem jest użycie metody SSH-Copy-ID. W niektórych przypadkach możesz nie mieć metody SSH-Copy-ID dostępną na lokalnym komputerze. W takim przypadku możesz użyć alternatywnej metody, aby dodać klucz SSH do serwera Centos.

Dodawanie klucza SSH przez ssh-copy-id Komenda

Twoja lokalna maszyna najprawdopodobniej będzie miała domyślnie metoda SSH-Copy-ID. Ta metoda będzie działać tylko na wypadek, gdybyś miał dostęp do hasła do serwera:

ssh-copy-id [e-mail chroniony] _host

Do mojego serwera użyję:

ssh-copy-id [e-mail chroniony]  

Adres IP to adres IP systemu, wpisz tak i naciśnij ENTER, zostaniesz poproszony o wprowadzenie hasła użytkownika zdalnego:

Po zakończeniu wszystkich kroków klucz publiczny zostanie skopiowany na serwer:

Dodanie klucza SSH bez SSH-Copy-ID

W przypadku, gdy Twój komputer lokalny nie ma zainstalowanej metody SSH-Copy-ID, co jest bardzo mało prawdopodobne, wówczas będziesz musiał uruchomić to polecenie, aby dodać klawisze SSH do serwera.

Do mojego serwera lokalnego użyję:

cat ~/.ssh/id_rsa.pub | ssh [e -mail chroniony] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/autoryzowane_keys && chmod 600 ~/.ssh/autoryzowane_keys "  

Jak zalogować się do serwera za pomocą klawiszy SSH

Teraz, gdy pomyślnie dodałeś klucz do serwera, powinieneś być w stanie zalogować się na serwerze bez hasła użytkownika:

$ ssh [e -mail chroniony] _IP_ADDRESS

Do mojego serwera użyję następującego polecenia:

SSH [chroniony e -mail]  

Jeśli nie ustawiałeś pstaski, możesz zalogować się bez uwierzytelnienia. Jest to najszybszy sposób zalogowania się na serwerze, w przeciwnym razie musisz przejść przez etap uwierzytelniania.

Krok 3 - Jak wyłączyć uwierzytelnianie hasła SSH

Możesz dodać dodatkową warstwę bezpieczeństwa, wyłączając uwierzytelnianie hasła dla SSH. Przed rozpoczęciem procesu upewnij się, że możesz uzyskać dostęp do serwera bez hasła jako użytkownika root lub jako użytkownik nie-root z uprawnieniami sudo.

Aby wyłączyć uwierzytelnianie hasła SSH, pierwszy zaloguj się na serwerze:

SSH [chroniony e -mail]  

Teraz otworzymy i zmodyfikujemy plik konfiguracyjny SSH zlokalizowany w/etc/ssh/sshd_config:

sudo nano/etc/ssh/sshd_config  

Po otwarciu pliku konfiguracyjnego dokonaj następujących zmian:

Hasło Automatyka nr 

Odkształcić powyższe linie, jeśli zostaną skomentowane, usuwając znak # i ustaw swoją wartość na nie.

Po modyfikacji pliku SSH musisz zapisać i zamknąć plik, naciskając Ctrl + X i ponownie uruchomić SSH za pomocą następującego polecenia:

sudo systemctl restart sshd  

Robiąc wszystkie kroki, uwierzytelnianie oparte na hasłach jest pomyślnie wyłączone.

Wniosek

SSH jest bezpiecznym protokołem sieciowym używanym do komunikacji między zdalnym serwerem a klientem; Jest bardziej bezpieczny niż FTP dla transferów plików między klientem a serwerem. W tym artykule nauczyliśmy się generować pary kluczy SSH i konfigurować uwierzytelnianie oparte na SSH dla serwerów opartych na Centos 8, nauczyliśmy się również wyłączać uwierzytelnianie hasła SSH.