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 
usernamena swój login na serwerze, aadres_serwerana 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_rsapowinien 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.




