Android

Jak skonfigurować klucze SSH na Centos 7

How to generate an SSH Key on Centos 7 | RHEL7

How to generate an SSH Key on Centos 7 | RHEL7

Spisu treści:

Anonim

Secure Shell (SSH) to kryptograficzny protokół sieciowy zaprojektowany do bezpiecznego połączenia między klientem a serwerem.

Dwa najpopularniejsze mechanizmy uwierzytelniania SSH to uwierzytelnianie oparte na haśle i uwierzytelnianie oparte na kluczu publicznym. Korzystanie z kluczy SSH jest ogólnie bezpieczniejsze i wygodniejsze niż tradycyjne uwierzytelnianie za pomocą hasła.

W tym samouczku wyjaśniono, jak generować klucze SSH w systemach CentOS 7. Pokażemy również, jak skonfigurować uwierzytelnianie oparte na kluczu SSH i połączyć się ze zdalnymi serwerami Linux bez wprowadzania hasła.

Tworzenie kluczy SSH na CentOS

Przed wygenerowaniem nowej pary kluczy SSH dobrze jest sprawdzić istniejące klucze SSH na komputerze klienta CentOS.

Aby to zrobić, uruchom następujące polecenie ls, które wyświetla listę wszystkich kluczy publicznych, jeśli istnieją:

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

Jeśli wynik polecenia zwraca coś takiego: No such file or directory lub no matches found , oznacza to, że nie masz kluczy SSH na komputerze klienckim i możesz przejść do następnego kroku i wygenerować parę kluczy SSH.

Jeśli istnieją klucze, możesz ich użyć i pominąć następny krok lub wykonać kopię zapasową starych kluczy i wygenerować nowe.

Zacznij od wygenerowania nowej pary kluczy SSH 4096 bitów z adresem e-mail jako komentarz:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Zostaniesz poproszony o podanie nazwy pliku:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

Naciśnij klawisz Enter aby zaakceptować domyślną lokalizację i nazwę pliku.

Następnie zostaniesz poproszony o wpisanie bezpiecznego hasła. To, czy chcesz użyć hasła, zależy od Ciebie. Jeśli zdecydujesz się użyć hasła, zyskasz dodatkową warstwę bezpieczeństwa.

Enter passphrase (empty for no passphrase):

Cała interakcja wygląda następująco:

Aby sprawdzić, czy wygenerowano nową parę kluczy SSH, wpisz:

ls ~/.ssh/id_*

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

Skopiuj klucz publiczny na serwer CentOS

Po wygenerowaniu pary kluczy SSH następnym krokiem jest skopiowanie klucza publicznego na serwer, którym chcesz zarządzać.

Najprostszym i zalecanym sposobem skopiowania klucza publicznego na zdalny serwer jest użycie narzędzia o nazwie ssh-copy-id . Na lokalnym terminalu maszynowym wpisz:

ssh-copy-id remote_username@server_ip_address

Zostaniesz poproszony o podanie hasła remote_username :

remote_username@server_ip_address's password:

Wpisz hasło, a po uwierzytelnieniu użytkownika klucz publiczny ~/.ssh/id_rsa.pub zostanie dołączony do pliku użytkownika zdalnego ~/.ssh/authorized_keys . Połączenie zostanie zamknięte.

Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.

Jeśli narzędzie ssh-copy-id nie jest dostępne na komputerze lokalnym, użyj następującego polecenia, aby skopiować klucz publiczny:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Zaloguj się do swojego serwera za pomocą kluczy SSH

Po wykonaniu powyższych kroków powinieneś być w stanie zalogować się na zdalnym serwerze bez pytania o hasło.

Aby to zweryfikować, spróbuj zalogować się na serwerze za pośrednictwem SSH:

ssh remote_username@server_ip_address

Wyłączanie uwierzytelniania hasła SSH

Aby dodać dodatkową warstwę bezpieczeństwa do zdalnego serwera, możesz wyłączyć uwierzytelnianie za pomocą hasła SSH.

Przed kontynuowaniem upewnij się, że możesz zalogować się na serwerze bez hasła jako użytkownik z uprawnieniami sudo.

Wykonaj poniższe czynności, aby wyłączyć uwierzytelnianie hasła SSH:

  1. Zaloguj się do swojego zdalnego serwera:

    ssh sudo_user@server_ip_address

    Otwórz plik konfiguracyjny SSH /etc/ssh/sshd_config w edytorze tekstu:

    sudo nano /etc/ssh/sshd_config

    Wyszukaj następujące dyrektywy i zmodyfikuj w następujący sposób:

    / etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    Po zakończeniu zapisz plik i uruchom ponownie usługę SSH, wpisując:

    sudo systemctl restart ssh

W tym momencie uwierzytelnianie oparte na haśle jest wyłączone.

Wniosek

W tym samouczku nauczyłeś się, jak wygenerować nową parę kluczy SSH i skonfigurować uwierzytelnianie oparte na kluczach SSH. Możesz dodać ten sam klucz do wielu zdalnych serwerów.

Pokazaliśmy również, jak wyłączyć uwierzytelnianie za pomocą hasła SSH i dodać dodatkową warstwę bezpieczeństwa do serwera.

Domyślnie SSH nasłuchuje na porcie 22. Zmiana domyślnego portu SSH zmniejsza ryzyko automatycznych ataków.

bezpieczeństwo centos ssh