Command Line - Protokół SSH i klucze private & public (Linux / OSX)
Spisu treści:
- Tworzenie kluczy SSH w Debianie
- Skopiuj klucz publiczny na serwer
- Zaloguj się do 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 haśle i kluczu publicznym. Korzystanie z kluczy SSH jest bezpieczniejsze i wygodniejsze niż tradycyjne uwierzytelnianie hasłem.
W tym samouczku opiszemy, jak generować klucze SSH w systemach Debian 9. 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 w Debianie
Przed wygenerowaniem nowej pary kluczy SSH najpierw sprawdź istniejące klucze SSH na komputerze klienckim Debiana. Możesz to zrobić, uruchamiając następującą komendę ls:
ls -l ~/.ssh/id_*.pub
Jeśli wynik powyższej komendy zawiera coś takiego:
No such file or directory
lub
no matches found
, oznacza to, że nie masz kluczy SSH i możesz przejść do następnego kroku i wygenerować nową 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 ze swoim adresem e-mail jako komentarza, używając następującego polecenia:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Dane wyjściowe będą wyglądać podobnie do następujących:
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. Dzięki hasłu do twojego klucza dodawana jest dodatkowa warstwa bezpieczeństwa.
Enter passphrase (empty for no passphrase):
Cała interakcja wygląda następująco:
Aby sprawdzić, czy para kluczy SSH została wygenerowana, wpisz:
ls ~/.ssh/id_*
Dane wyjściowe powinny wyglądać mniej więcej tak:
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
Skopiuj klucz publiczny na serwer
Teraz, gdy masz już parę 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
ssh-copy-id
.
Na terminalu komputera lokalnego dostrój następujące polecenie:
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
, a 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 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 serwera za pomocą kluczy SSH
W tym momencie powinieneś być w stanie zalogować się do zdalnego serwera bez pytania o hasło.
Aby to przetestować, spróbuj połączyć się z serwerem przez SSH:
ssh remote_username@server_ip_address
Wyłączanie uwierzytelniania hasła SSH
Aby dodać dodatkową warstwę zabezpieczeń do serwera, możesz wyłączyć uwierzytelnianie hasła dla SSH.
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
:
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 za pomocą następującego polecenia:
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 debian sshJak zainstalować i skonfigurować Redis na Debianie 9
Redis to open-source magazyn danych klucz-wartość. Może być używany jako baza danych, pamięć podręczna i broker komunikatów i obsługuje różne struktury danych, takie jak ciągi, skróty, listy, zestawy itp. W tym samouczku wyjaśniono, jak zainstalować i skonfigurować Redis na serwerze Debian 9.
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 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.