Uwierzytelnianie SSH za pomocą kluczy
Generuj pary kluczy SSH, wdrażaj klucze publiczne na serwerach i wyłączaj uwierzytelnianie hasłem, aby zwiększyć bezpieczeństwo.
Uwierzytelnianie SSH za pomocą kluczy to bezpłatna lekcja Linux Server Deployment & SSH Mastery na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Server Deployment & SSH Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Odblokuj SSH za pomocą par kluczy
Witamy! W tej lekcji poznają Państwo uwierzytelnianie SSH za pomocą kluczy. Ta metoda jest znacznie bezpieczniejsza i wygodniejsza niż używanie tradycyjnych haseł podczas logowania do serwera.
Klucze SSH działają jak cyfrowe powitanie, potwierdzając Państwa tożsamość bez konieczności wpisywania hasła za każdym razem.
Magia klucza publicznego i prywatnego
Uwierzytelnianie za pomocą kluczy SSH opiera się na parze kluczy kryptograficznych:
- Klucz prywatny: pozostaje na lokalnym komputerze i musi być utrzymywany w tajemnicy. Można myśleć o nim jak o unikatowym kluczu do cyfrowego zamka.
- Klucz publiczny: jest umieszczany na serwerze, do którego chcą się Państwo uzyskać dostęp. Przypomina specjalny zamek, który można otworzyć wyłącznie za pomocą klucza prywatnego.
Podczas próby połączenia serwer wysyła wyzwanie do klienta, a klient używa klucza prywatnego, aby potwierdzić swoją tożsamość.
Generowanie kluczy SSH
Własną parę kluczy SSH można wygenerować za pomocą polecenia ssh-keygen na lokalnym komputerze. Domyślnie tworzy ono parę kluczy RSA.
Po wyświetleniu monitu można wybrać hasło zabezpieczające klucz prywatny. Zapewnia to dodatkową warstwę bezpieczeństwa, ponieważ przed użyciem klucza trzeba podać to hasło.
ssh-keygenDostosowywanie generowania kluczy
W celu zapewnienia większego bezpieczeństwa zaleca się używanie nowszych typów kluczy, takich jak ED25519. Można również określić niestandardową nazwę pliku kluczy.
-t ed25519: określa algorytm ED25519.-f ~/.ssh/my_server_key: tworzy pliki o nazwachmy_server_keyimy_server_key.pub.
Klucz prywatny należy zawsze zabezpieczać silnym hasłem!
ssh-keygen -t ed25519 -f ~/.ssh/my_server_keyPoznawanie plików kluczy
Po wygenerowaniu klucze są zazwyczaj przechowywane w katalogu ~/.ssh/ na lokalnym komputerze. Znajdą tam Państwo dwa pliki:
id_ed25519(lubid_rsa): to Państwa klucz prywatny. Należy go bezwzględnie zabezpieczyć i nigdy nikomu nie udostępniać.id_ed25519.pub(lubid_rsa.pub): to Państwa klucz publiczny. Ten plik należy skopiować na serwer.
Uprawnienia tych plików są również bardzo ważne dla bezpieczeństwa!
Łatwe wdrażanie klucza publicznego
Najłatwiejszym sposobem umieszczenia klucza publicznego na serwerze jest użycie polecenia ssh-copy-id. Bezpiecznie kopiuje ono klucz publiczny do pliku ~/.ssh/authorized_keys na serwerze.
Przy pierwszym uruchomieniu tego polecenia dla nowego serwera trzeba podać hasło. Później logowanie za pomocą hasła często nie jest już potrzebne.
ssh-copy-id user@your_server_ipRęczne wdrażanie klucza publicznego
Jeśli polecenie ssh-copy-id jest niedostępne lub preferują Państwo metodę ręczną, można samodzielnie skopiować klucz publiczny na serwer.
Najpierw należy upewnić się, że katalog ~/.ssh istnieje na serwerze i ma odpowiednie uprawnienia (700). Następnie należy dopisać klucz publiczny do pliku ~/.ssh/authorized_keys (uprawnienia 600).
cat ~/.ssh/id_ed25519.pub | ssh user@your_server_ip \
"mkdir -p ~/.ssh && chmod 700 ~/.ssh && \
cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Łączenie za pomocą nowych kluczy
Po umieszczeniu klucza publicznego na serwerze można połączyć się za pomocą SSH. Jeśli użyto domyślnej nazwy klucza (np. id_rsa lub id_ed25519), SSH znajdzie go automatycznie.
Jeśli użyto niestandardowej nazwy klucza (np. my_server_key), należy wskazać ją za pomocą flagi -i.
ssh -i ~/.ssh/my_server_key user@your_server_ipWyłączanie logowania za pomocą hasła dla bezpieczeństwa
W celu zwiększenia bezpieczeństwa zdecydowanie zaleca się wyłączenie uwierzytelniania za pomocą hasła na serwerze, gdy logowanie za pomocą klucza już działa.
Proszę edytować plik konfiguracyjny demona SSH (/etc/ssh/sshd_config) na serwerze, zmienić PasswordAuthentication yes na no, a następnie ponownie uruchomić usługę SSH (np. za pomocą sudo systemctl restart sshd lub sudo service ssh restart).
# On the server, edit /etc/ssh/sshd_config
PasswordAuthentication no
# Then restart SSH service
sudo systemctl restart sshdSprawdzenie uwierzytelniania za pomocą klucza
Dowiedzieli się już Państwo, jak działa uwierzytelnianie SSH za pomocą kluczy, jak generować klucze i jak je wdrażać. Sprawdźmy Państwa wiedzę!
Podsumowanie: bezpieczny SSH z kluczami
Świetna praca! Opanowali już Państwo uwierzytelnianie SSH za pomocą kluczy. Dowiedzieli się Państwo:
- jaka jest różnica między kluczem publicznym a prywatnym;
- jak generować pary kluczy za pomocą
ssh-keygen; - jak wdrażać klucz publiczny na serwerze za pomocą
ssh-copy-idlub ręcznie; - jak bezpiecznie się łączyć bez używania haseł;
- dlaczego i jak wyłączyć uwierzytelnianie za pomocą hasła na serwerze.
Klucze SSH są podstawowym narzędziem bezpiecznego i wydajnego zarządzania serwerami. Proszę ćwiczyć dalej!
Często zadawane pytania
Czy lekcja „Uwierzytelnianie SSH za pomocą kluczy” jest bezpłatna?
Tak — pełny tekst „Uwierzytelnianie SSH za pomocą kluczy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Server Deployment & SSH Mastery, przejdź na CoddyKit PRO. Kurs Linux Server Deployment & SSH Mastery zawiera 4 lekcji w sumie.
Co nauczysz się w „Uwierzytelnianie SSH za pomocą kluczy”?
Generuj pary kluczy SSH, wdrażaj klucze publiczne na serwerach i wyłączaj uwierzytelnianie hasłem, aby zwiększyć bezpieczeństwo. Ćwiczysz Linux Server Deployment & SSH Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Linux Server Deployment & SSH Mastery?
Nie wymagamy żadnego doświadczenia. Linux Server Deployment & SSH Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Uwierzytelnianie SSH za pomocą kluczy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Linux Server Deployment & SSH Mastery?
Tak. Każda lekcja Linux Server Deployment & SSH Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Poznawanie protokołu SSH
- Konfigurowanie klienta SSH
- Uwierzytelnianie SSH za pomocą kluczy
- Zabezpieczanie serwera SSH