===== Klucze SSH =====
**Klucz SSH** to para kryptograficznych plików:
* **Klucz prywatny** (''id_rsa'', ''id_ecdsa'' itp.) – przechowywany na urządzeniu lokalnym (komputer/laptop)
* **Klucz publiczny** (''id_rsa.pub'') – umieszczany na urządzeniu zdalnym (np. [[hardware:raspberry_pi|Raspberry Pi]] z [[kategoria:linux:osmc|OSMC]]/Kodi)
{{page>:szablon:gfx:serwer}}
Parowanie odbywa się przez dodanie klucza publicznego klienta do pliku:
~/.ssh/authorized_keys
na zdalnym urządzeniu.
==== Jak działa parowanie urządzeń? ====
1. Klient generuje parę kluczy (np. ''ssh-keygen'')
2. Klucz publiczny zostaje skopiowany na urządzenie zdalne
3. Podczas połączenia:
- klient przedstawia swój **klucz prywatny**
- serwer sprawdza, czy odpowiada on **kluczowi publicznemu** w ''authorized_keys''
- jeśli tak – dostęp zostaje przyznany **bez podawania hasła**
==== Zalety logowania kluczem ====
* **Brak konieczności wpisywania hasła**
* **Bezpieczniejsze** niż hasła tekstowe
* Możliwość ograniczenia dostępu tylko do konkretnych urządzeń
* Można przypisywać różne klucze różnym użytkownikom (audyt, kontrola)
==== Dobre praktyki ====
* Klucz prywatny chroniony hasłem (''ssh-keygen -p'')
* Pliki kluczy mają odpowiednie uprawnienia:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
* Nigdy nie udostępniaj klucza prywatnego (''id_rsa'') – traktuj go jak hasło główne
* Twórz osobny klucz dla każdego urządzenia, które się łączy
==== Lokalizacja kluczy ====
Na systemie Linux/macOS klucze zwykle znajdują się w katalogu:
~/.ssh/
Przykładowe pliki:
* ''id_rsa'' – klucz prywatny
* ''id_rsa.pub'' – klucz publiczny
* ''authorized_keys'' – klucze publiczne dopuszczone do logowania (na serwerze)
* ''known_hosts'' – znane klucze hostów zdalnych (na kliencie)
==== Usuwanie klucza z różnych urządzeń ====
=== 1. Usuwanie klucza publicznego z serwera (np. OSMC/Kodi) ===
Klucze publiczne klientów przechowywane są na urządzeniu zdalnym w pliku:
~/.ssh/authorized_keys
Aby usunąć dostęp konkretnego klienta:
nano ~/.ssh/authorized_keys
Usuń linię zawierającą jego klucz publiczny (rozpoznasz po e-mailu, hostname lub skrócie).
Aby usunąć **wszystkie** klucze:
> ~/.ssh/authorized_keys
lub:
rm ~/.ssh/authorized_keys
=== 2. Usuwanie klucza prywatnego z komputera/laptopa (klienta) ===
Klucze prywatne przechowywane są lokalnie, zwykle w katalogu:
~/.ssh/
Aby usunąć wybrany klucz:
rm ~/.ssh/id_rsa
rm ~/.ssh/id_rsa.pub
(uwaga: może mieć inną nazwę, np. ''id_ed25519'', ''osmc_rsa'' itp.)
Jeśli klucz był wpisany w ''~/.ssh/config'', usuń również jego wpis lub zmień konfigurację.
=== 3. Usuwanie starego wpisu hosta z known_hosts ===
Jeśli urządzenie (np. Raspberry Pi) zostało zreinstalowane, jego nowy klucz hosta będzie się różnił, co powoduje błąd przy łączeniu. Usuń wtedy wpis z pliku:
~/.ssh/known_hosts
Szybko, automatycznie:
ssh-keygen -R 192.168.1.100
lub:
ssh-keygen -R hostname
Alternatywnie edytuj ręcznie:
nano ~/.ssh/known_hosts
Usuń linię odpowiadającą danemu hostowi.
=== 4. Usuwanie kluczy z urządzenia mobilnego (np. Termux) ===
* Wejdź do katalogu ''~/.ssh/''
* Użyj ''rm id_rsa id_rsa.pub'' lub ''rm -r ~/.ssh'' (usuwa cały katalog)
=== 5. Dobre praktyki przy usuwaniu kluczy ===
* Zawsze wykonaj kopię zapasową, jeśli nie jesteś pewna/y, czy dany klucz będzie jeszcze potrzebny.
* Utrzymuj porządek w plikach: podpisuj klucze (np. ''osmc_rpi.pub'') i używaj komentarzy w ''authorized_keys''.
* W przypadku podejrzenia, że klucz mógł być ujawniony — **natychmiast usuń** go z ''authorized_keys'' i wygeneruj nową parę.
{{page>:szablony:more}}
{{indexmenu>:serwery#1}}
{{pagebox>:pagebox:kategorie}}