Aby wygenerować klucz publiczny i prywatny SSH w CentOS i poprawnie ich używać, wykonaj poniższy rozbudowany poradnik krok po kroku. Instrukcje obejmują wszystkie istotne wyjaśnienia oraz zalecane praktyki bezpieczeństwa.
1. Wprowadzenie – czym są klucze SSH?
Klucze SSH to para powiązanych ze sobą plików kryptograficznych: klucz prywatny (pozostaje wyłącznie na Twoim komputerze) i klucz publiczny (umieszczany na serwerze). Razem umożliwiają one bezpieczne, bezhasłowe logowanie się na serwer zdalny przez protokół SSH.
- Klucz publiczny możesz udostępniać i umieszczać na dowolnej liczbie serwerów.
- Klucz prywatny musisz chronić – nigdy nie wysyłaj go innym osobom i nie udostępniaj publicznie.
2. Wymagania wstępne
- System CentOS (dowolna współczesna wersja, np. 7, 8 czy Stream)
- Terminal z dostępem do własnego konta użytkownika
- Pakiet OpenSSH (domyślnie obecny w CentOS)
3. Generowanie pary kluczy SSH
3.1. Sprawdzenie dostępności ssh-keygen
Polecenie ssh-keygen jest częścią pakietu OpenSSH. Uruchom w terminalu:
ssh-keygen -V
Jeśli pojawi się wersja, wszystko jest gotowe. Jeśli nie – upewnij się, że OpenSSH jest zainstalowany:
sudo yum install openssh
3.2. Generowanie kluczy
W terminalu wpisz:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
- -t rsa – wybiera typ klucza RSA (najpopularniejszy, zalecany do większości zastosowań).
- -b 4096 – ustawia długość klucza na 4096 bitów (dla lepszego bezpieczeństwa).
- -C – dodaje komentarz (zwykle e-mail, pomaga identyfikować klucz).
Efektem tego będą pytania:
- Gdzie zapisać klucz? Domyślnie
/home/użytkownik/.ssh/id_rsa
. Możesz podać inną ścieżkę. - Hasło do klucza (passphrase)? Opcjonalne, ale zdecydowanie zalecane – dodatkowo chroni klucz prywatny.
Przykład kroków:
Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa): [naciśnij Enter lub podaj nową ścieżkę] Enter passphrase (empty for no passphrase): [wpisz silne hasło lub pozostaw puste] Enter same passphrase again: [powtórz hasło]
Po zakończeniu w katalogu ~/.ssh/
pojawią się dwa pliki:
id_rsa
(klucz prywatny – zachowaj tylko dla siebie)id_rsa.pub
(klucz publiczny – kopiujesz na serwer)
4. Instalacja klucza publicznego na serwerze
Aby zalogować się do serwera bez hasła, musisz umieścić zawartość swojego klucza publicznego w pliku ~/.ssh/authorized_keys
po stronie serwera.
Najprościej zrobisz to poleceniem:
ssh-copy-id username@adres_serwera
- Zamieni
username
na swój login na serwerze, aadres_serwera
na adres serwera docelowego.
Możesz także ręcznie skopiować zawartość pliku id_rsa.pub
i dopisać ją na serwerze do pliku ~/.ssh/authorized_keys
.
5. Bezpieczeństwo klucza prywatnego
- Plik
id_rsa
powinien mieć restrykcyjne uprawnienia:
chmod 600 ~/.ssh/id_rsa
- Nie udostępniaj klucza prywatnego innym osobom.
- Zawsze używaj silnego hasła (passphrase) dla najlepszego zabezpieczenia.
- Klucz publiczny możesz umieszczać na dowolnej liczbie serwerów – nigdy nie przesyłaj tam klucza prywatnego.
6. Przykładowe testowanie połączenia
Użyj polecenia:
ssh username@adres_serwera
Jeżeli wszystko zostało poprawnie skonfigurowane, system poprosi ewentualnie tylko o hasło do klucza prywatnego (jeśli takie podałeś podczas jego tworzenia).
7. Podsumowanie – najważniejsze zalecenia
- Chronić klucz prywatny – nie udostępniać, nie publikować, dbać o jego bezpieczeństwo.
- Umieszczać klucz publiczny tylko na tych serwerach, do których chcesz mieć dostęp przez SSH.
- Zmienić domyślną ścieżkę lub nazwę pliku klucza, jeśli tworzysz wiele różnych par kluczy do różnych serwerów, by zachować porządek.
- Regularnie usuwać niepotrzebne lub przestarzałe klucze publiczne z serwerów.
Poradnik aktualny dla CentOS 7, 8 i Stream. Polecenia oraz mechanizmy ssh-keygen są spójne z innymi dystrybucjami Linuksa, np. Ubuntu lub Debian.