Command Line - Protokół SSH i klucze private & public (Linux / OSX)
Spisu treści:
- Tworzenie kluczy SSH na Ubuntu
- Skopiuj klucz publiczny na serwer Ubuntu
- Zaloguj się do swojego serwera za pomocą kluczy SSH
- Wyłączanie uwierzytelniania hasła SSH
- Wniosek
Secure Shell (SSH) to kryptograficzny protokół sieciowy używany do bezpiecznego połączenia między klientem a serwerem i obsługuje różne mechanizmy uwierzytelniania.
Dwa najpopularniejsze mechanizmy to uwierzytelnianie oparte na hasłach i uwierzytelnianie oparte na kluczu publicznym. Korzystanie z kluczy SSH jest bezpieczniejsze i wygodniejsze niż tradycyjne uwierzytelnianie hasłem.
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.
Tworzenie kluczy SSH na Ubuntu
Przed wygenerowaniem nowej pary kluczy SSH najpierw sprawdź istniejące klucze SSH na komputerze klienckim Ubuntu. Możesz to zrobić, uruchamiając następującą komendę ls:
ls -l ~/.ssh/id_*.pub
Jeśli powyższe polecenie wyświetla 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.
Wygeneruj nową parę kluczy SSH 4096 bitów z adresem e-mail jako komentarz, wpisując:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Dane wyjściowe będą wyglądać mniej więcej tak:
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ę na użycie 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 Ubuntu
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 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:
Po uwierzytelnieniu użytkownika klucz publiczny
~/.ssh/id_rsa.pub
zostanie dołączony do pliku użytkownika zdalnego
~/.ssh/authorized_keys
i 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 z jakiegoś powodu narzędzie
ssh-copy-id
nie jest dostępne na twoim komputerze lokalnym, możesz użyć 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 przetestować, spróbuj zalogować się na serwerze za pośrednictwem SSH:
ssh remote_username@server_ip_address
Wyłączanie uwierzytelniania hasła SSH
Wyłączenie uwierzytelniania hasłem dodaje dodatkową warstwę bezpieczeństwa do twojego serwera.
Przed wyłączeniem uwierzytelniania hasła SSH upewnij się, że możesz zalogować się na serwerze bez hasła, a użytkownik, z którego się logujesz, ma uprawnienia sudo.
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 ubuntu 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 na Centos 7
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.
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.