Przewodniki krok po kroku

Usuwanie kluczy SSH w systemie Linux: Wszystkie metody i wskazówki

  • 7 minut na przeczytanie
  • Zespół Hostragons
Usuwanie kluczy SSH w systemie Linux: Wszystkie metody i wskazówki

Wstęp

Usuwanie kluczy SSH w systemie Linux to kluczowy proces, szczególnie gdy chcemy usunąć klucz SSH lub go zmienić. Może zajść potrzeba unieważnienia kluczy w celu zwiększenia bezpieczeństwa naszych połączeń SSH lub przeprowadzenia nowej konfiguracji bezpieczeństwa SSH. W tym artykule omówimy różne metody usuwania kluczy SSH, ich zalety i wady oraz możliwe alternatywne rozwiązania. Zaprezentujemy także przykłady praktyczne, a na końcu odpowiemy na najczęściej zadawane pytania.

1. Jakie są klucze SSH i dlaczego trzeba je usunąć?

SSH (Secure Shell) to protokół i zestaw narzędzi, które umożliwiają bezpieczne połączenia zdalne z serwerami. „Uwierzytelnianie oparte na kluczu” zapewnia bezpieczne i praktyczne zastosowanie. Wymienione sytuacje mogą wymagać usunięcia kluczy SSH w systemie Linux:

  • Bezpieczeństwo: Jeśli obawiasz się, że twój klucz został skompromitowany lub stworzony przy użyciu przestarzałych algorytmów.
  • Zamiana użytkownika: Przekazywanie serwera, dodanie nowego członka do zespołu, lub unieważnienie dostępu specjalisty, który opuścił projekt.
  • Nowa konfiguracja: Odtworzenie kluczy dla silniejszych algorytmów (np. Ed25519) lub innej konfiguracji bezpieczeństwa SSH.

Usunięcie kluczy SSH można stosować nie tylko w ryzykownych przypadkach, ale także jako część regularnej polityki bezpieczeństwa. Usunięcie nieużywanych lub zbędnych kluczy zmniejsza potencjalne wektory ataku cybernetycznego.

2. Podstawowe kroki usuwania kluczy SSH

Aby usunąć klucz SSH, zwykle należy zwrócić uwagę na dwa różne aspekty:

  1. Usunięcie kluczy na maszynie lokalnej: Zazwyczaj polega na usunięciu prywatnych (private) i publicznych (public) kluczy w katalogu ~/.ssh/.
  2. Usunięcie zarejestrowanych kluczy na zdalnym serwerze: Wymaga usunięcia linii w pliku ~/.ssh/authorized_keys po stronie serwera.

Obydwa te kroki należy przeprowadzić jednocześnie. Nawet jeśli usuniesz lokalny klucz, pozostawienie informacji na serwerze nadal stwarza ryzyko, jeśli nieuprawniony użytkownik przejmie dostęp do zdalnego serwera.

2.1 Usuwanie klucza lokalnego

Na systemach Linux lub macOS klucze SSH zwykle znajdują się w katalogu ~/.ssh. Przykłady:

  • ~/.ssh/id_rsa (klucz prywatny)
  • ~/.ssh/id_rsa.pub (klucz publiczny)
  • ~/.ssh/id_ed25519 (klucz prywatny)
  • ~/.ssh/id_ed25519.pub (klucz publiczny)

Należy być ostrożnym podczas usuwania. Jeśli klucz ma niestandardową nazwę (mycustomkey itp.), upewnij się, że usuwasz właściwe pliki. Oto przykładowe polecenia:

cd ~/.ssh/
rm id_rsa id_rsa.pub
# lub
rm id_ed25519 id_ed25519.pub

Jeśli przechodzisz do nowego projektu lub pracujesz z innym użytkownikiem, usunięcie tych plików będzie wystarczające. Jednak w przypadku pracy z wieloma kluczami na jednym serwerze, musisz być ostrożny, aby nie usunąć niewłaściwego pliku.

przykładowy zrzut ekranu procesu usuwania kluczy SSH w Linuxie

2.2 Usuwanie klucza z dalekiego serwera

Przechodząc do kroku usunięcia klucza SSH na serwerze, należy usunąć odpowiednią linię w pliku ~/.ssh/authorized_keys dla użytkownika, z którym się łączymy. Możesz zastosować następujące kroki:

# Zaloguj się na serwer.
ssh [email protected]

# Następnie przejdź do swojego katalogu domowego i otwórz plik authorized_keys
nano ~/.ssh/authorized_keys

# Znajdź linię, którą chcesz usunąć, i usuń ją.

Na przykład zawartość id_rsa.pub wyświetli się jako długa linia w pliku authorized_keys. Zidentyfikuj tę linię i całkowicie ją usuń. Po zapisaniu i wyjściu dostęp z tego klucza do serwera zostanie unieważniony.

2.3 Specjalna metoda: Odwrócenie procesu z ssh-copy-id

ssh-copy-id jest zazwyczaj używane do dodawania kluczy. Chociaż brakuje opcji „usuwania”, można to zrobić manualnie. Klucze dodane przez ssh-copy-id pasują do konkretnych linii w pliku authorized_keys, dlatego potrzebna będzie ręczna modyfikacja. Nie można bezpośrednio wykonać polecenia ssh-copy-id -r do usunięcia. Dlatego musisz wyczyścić plik authorized_keys za pomocą edytora lub przygotować skrypt.

3. Zalety i wady usuwania kluczy SSH

Przed przystąpieniem do jakiejkolwiek operacji warto przemyśleć jej plusy i minusy, aby zapobiec potencjalnym problemom. Oto zalety i wady procesu usuwania kluczy:

3.1 Zalety

  • Zwiększenie bezpieczeństwa: Unieważniając nieużywane lub potencjalnie zagrożone klucze, redukujesz powierzchnię ataku.
  • Czysta administracja: Umożliwiasz łatwe zakończenie dostępu dla osob, które opuściły zespół, co poprawia zarządzalność.
  • Regularne aktualizacje: Przeprowadzając regularne usuwanie i odtwarzanie kluczy, możesz korzystać z nowoczesnych algorytmów szyfrujących.

3.2 Wady

  • Usunięcie niewłaściwego klucza: Usunięcie błędnego pliku lub linii może skutkować utratą dostępu do systemu.
  • Przejściowa utrata dostępu: W trakcie operacji mniej doświadczone osoby mogą mieć trudności z ponownym połączeniem.
  • Koszt pracy: Zarządzanie tym procesem dla wielu serwerów lub użytkowników może być czasochłonne.

Dlatego warto wziąć pod uwagę zarówno zalety, jak i nieoczekiwane ryzyka, i przeprowadzać operacje w sposób zorganizowany i staranny.

4. Inne metody

Oprócz usuwania kluczy SSH istnieją różne podejścia, które mogą się przydać w szczególnych przypadkach. Przegląd tej sekcji może przynieść korzyści w niektórych scenariuszach:

4.1 Aktualizacje passphrase

Jeśli chcesz jedynie zmienić hasło klucza na poziomie konfiguracji bezpieczeństwa SSH, możesz użyć polecenia ssh-keygen -p do aktualizacji passphrase. Pozwoli to na zwiększenie bezpieczeństwa bez całkowitego usuwania klucza.

4.2 Lista unieważnień kluczy (KRL)

W wersjach OpenSSH 6.2 i wyższych dostępna jest funkcja Key Revocation List (KRL). To oznacza, że możesz prowadzić listę kluczy, które są unieważnione lub certyfikatów, które nie będą akceptowane na serwerze. Możesz utworzyć KRL za pomocą komendy ssh-keygen -k -f revoked_keys i skonfigurować SSH zgodnie z tą listą.

4.3 Ograniczenia za pomocą plików konfiguracyjnych SSH

Na poziomie serwera można zastosować parametry w pliku /etc/ssh/sshd_config, aby zablokować użytkowników lub konkretne typy kluczy. Na przykład, ustawienie PasswordAuthentication no zezwala tylko na dostęp oparty na kluczu, co może prowadzić do utworzenia różnych polityk dla systemów DMZ lub testowych. Jednak jest to metoda, która zmienia ogólny protokół dostępu, a nie same klucze.

5. Praktyczne przykłady i wskazówki

Przyjrzyjmy się kilku przykładom, jak można realizować poszczególne kroki:

  1. Przykład zespołu deweloperskiego: Masz zespół liczący 5 osób. W przypadku odejścia jednej osoby wystarczy usunąć jej linię z pliku authorized_keys. Dodatkowo należy usunąć klucz prywatny z lokalnej maszyny tej osoby.
  2. Przekazanie serwera: Podczas zmiany infrastruktury unieważniasz wszystkie klucze SSH na starym serwerze, używając tylko aktualnych kluczy na nowym serwerze. Dzięki temu unikniesz ponownego uruchomienia luk w bezpieczeństwie starych systemów.
  3. Scenariusz kryzysowy: Jeśli istnieje podejrzenie, że klucz został skompromitowany lub skradziony, niezwłoczne usunięcie klucza SSH jest kluczowe dla zapobieżenia nieautoryzowanemu dostępowi. Następnie możesz utworzyć nowy klucz i dodać go do swojego systemu.

Te przykłady ilustrują, jak kluczowe jest podjęcie decyzji o usunięciu klucza w różnych okolicznościach.

6. Źródła i zasoby

Jeśli potrzebujesz bardziej szczegółowych informacji na temat SSH, możesz zapoznać się z całą dokumentacją na oficjalnej stronie OpenSSH (DoFollow).

Możesz również przeszukać nasz dział Linux, aby znaleźć różne przykłady konfiguracji.

7. Podsumowanie i konkluzje

Usuwanie kluczy SSH w systemie Linux jest niezbędnym krokiem z perspektywy bezpieczeństwa i zarządzania. Możesz chcieć usunąć klucze SSH z powodu naruszeń bezpieczeństwa, zmian w zespole lub po prostu w celu zapewnienia porządku. Proces ten można zasadniczo podzielić na dwa etapy: oczyszczenie kluczy lokalnych oraz usunięcie odpowiednich linii w pliku authorized_keys na serwerze.

Zaleca się, aby podejść do tych kroków ostrożnie, zarządzać procesami konfiguracji bezpieczeństwa SSH w formie pisemnej polityki i zapewnić koordynację w zespole. Regularne stosowanie nowoczesnych metod kryptograficznych, okresowe kontrole i dezaktywacja nieużywanych kluczy stanowią ważny element ochrony przed atakami cybernetycznymi. Pamiętaj, że nawet drobne zaniedbanie może otworzyć drzwi do poważnych naruszeń danych.

Często Zadawane Pytania

1. Czy muszę być zalogowany w systemie, aby usunąć klucz SSH?

Z reguły tak. Aby usunąć klucz SSH, musisz mieć dostęp do serwera. Gdy jesteś zalogowany, możesz edytować plik authorized_keys lub usuwać pliki w katalogu ~/.ssh. Jednak w przypadku dostępu za pomocą innej metody (np. konsoli root) możesz dokonać edycji bez bycia zalogowanym.

2. Co zrobić, aby ponownie połączyć się po usunięciu klucza SSH?

Jeśli usunąłeś stary klucz, nie będziesz mógł połączyć się z serwerem za jego pomocą. Jeśli planujesz nową konfigurację bezpieczeństwa SSH, powinieneś wygenerować nowe klucze przy użyciu polecenia ssh-keygen i dodać klucz publiczny do pliku authorized_keys na serwerze.

3. Czy muszę usunąć klucz ze wszystkich serwerów, jeśli używam jednego klucza?

Jeśli chcesz całkowicie unieważnić klucz, tak, musisz usunąć wszystkie wpisy z file authorized_keys na każdym serwerze. W przeciwnym razie możesz nadal mieć dostęp do różnych serwerów.

Udostępnij ten artykuł:

Zespół Hostragons

Aktualne poradniki od naszego zespołu ekspertów dotyczące hostingu, serwerów i nazw domen. Razem znajdziemy idealne rozwiązanie dla Twojego projektu.

Skontaktuj się z Nami