How to generate an SSH Key on Centos 7 | RHEL7
Spisu treści:
- Tworzenie kluczy SSH na CentOS
- Skopiuj klucz publiczny na serwer CentOS
- Zaloguj się do swojego serwera za pomocą kluczy SSH
- Wyłączanie uwierzytelniania hasła SSH
- Wniosek
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:
-
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_configPasswordAuthentication 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 sshGeneruj klucze ssh w systemie Windows za pomocą puttygen
W tym samouczku wyjaśniono, jak generować klucze SSH w systemie Windows za pomocą PuTTYgen. Pokażemy również, jak skonfigurować uwierzytelnianie oparte na kluczu SSH i połączyć się ze zdalnymi serwerami Linux bez wprowadzania hasła.
Jak skonfigurować klucze SSH w Debianie 9
W tym samouczku opiszemy, jak generować klucze SSH w systemach Debian 9. Pokażemy Ci również, jak skonfigurować uwierzytelnianie oparte na kluczu SSH i połączyć się ze zdalnymi serwerami Linux bez wprowadzania hasła.
Jak skonfigurować klucze SSH w Ubuntu 18.04
W tym samouczku omówimy generowanie kluczy SSH na komputerach z systemem Ubuntu 18.04. Pokażemy również, jak skonfigurować uwierzytelnianie oparte na kluczu SSH i połączyć się ze zdalnymi serwerami Linux bez wprowadzania hasła.