Skip to content Skip to footer

Jak usunąć klucze SSH w Ubuntu Desktop

W trakcie korzystania z SSH w Ubuntu Desktop możesz napotkać błąd w stylu: „Host key for [nazwa_hosta] has changed and you have requested strict checking. Host key verification failed.” Ten problem zwykle wynika ze zmiany klucza hosta na serwerze, z którym się łączysz. W tym artykule wyjaśnimy, jak usunąć problematyczny klucz hosta z pliku known_hosts oraz jak wyczyścić wszystkie zapisane klucze SSH w systemie.

1. Usuwanie pojedynczego klucza hosta

Jeśli problem dotyczy konkretnego hosta, na przykład docker-test-srvr, możesz usunąć jego klucz z pliku known_hosts. Wykonaj poniższe kroki:

  1. Otwórz terminal (skrót: Ctrl + Alt + T).
  2. Wpisz polecenie:
    ssh-keygen -f "/home/[twoja_nazwa_uzytkownika]/.ssh/known_hosts" -R "docker-test-srvr"
    Zastąp [twoja_nazwa_uzytkownika] nazwą swojego użytkownika, np. tomasz-syn-grzegorza.
  3. Po wykonaniu polecenia klucz dla docker-test-srvr zostanie usunięty.
  4. Połącz się ponownie z serwerem za pomocą:
    ssh [twoja_nazwa_uzytkownika]@docker-test-srvr
    Zostaniesz poproszony o zaakceptowanie nowego klucza hosta. Wpisz yes, aby go zapisać.

Uwaga: Jeśli klucz jest zapisany pod adresem IP (np. 192.168.1.100) zamiast nazwy hosta, użyj adresu IP w poleceniu ssh-keygen -R.

2. Usuwanie wszystkich kluczy hostów

Jeśli chcesz wyczyścić wszystkie zapisane klucze hostów w pliku known_hosts, możesz usunąć lub wyczyścić ten plik. Oto jak to zrobić:

  • Usunięcie pliku: Wykonaj w terminalu:
    rm /home/[twoja_nazwa_uzytkownika]/.ssh/known_hosts
    Przy kolejnym połączeniu SSH plik zostanie automatycznie utworzony od nowa.
  • Wyczyszczenie pliku bez usuwania: Wykonaj:
    > /home/[twoja_nazwa_uzytkownika]/.ssh/known_hosts
    Spowoduje to opróżnienie pliku, ale pozostawi go w systemie.

Uwaga: Usunięcie wszystkich kluczy oznacza, że przy każdym nowym połączeniu SSH zostaniesz poproszony o potwierdzenie klucza hosta. Upewnij się, że łączysz się z zaufanymi serwerami, aby uniknąć zagrożeń typu „man-in-the-middle”.

3. Rozwiązywanie problemów

Jeśli po usunięciu klucza problem nadal występuje, spróbuj następujących kroków:

  • Sprawdź nazwę hosta: Otwórz plik known_hosts za pomocą:
    cat /home/[twoja_nazwa_uzytkownika]/.ssh/known_hosts
    Sprawdź, czy klucz jest zapisany pod nazwą hosta, adresem IP lub z niestandardowym portem (np. [docker-test-srvr]:2222). Usuń odpowiedni wpis.
  • Uprawnienia pliku: Upewnij się, że plik known_hosts ma odpowiednie uprawnienia:
    chmod 600 /home/[twoja_nazwa_uzytkownika]/.ssh/known_hosts
    chown [twoja_nazwa_uzytkownika] /home/[twoja_nazwa_uzytkownika]/.ssh/known_hosts
  • Tymczasowe wyłączenie ścisłej weryfikacji: Jeśli błąd się powtarza, możesz tymczasowo wyłączyć ścisłą weryfikację klucza:
    ssh -o StrictHostKeyChecking=no [twoja_nazwa_uzytkownika]@docker-test-srvr
    Używaj tej opcji ostrożnie, tylko dla zaufanych serwerów.
  • Debugowanie SSH: Aby uzyskać więcej informacji o problemie, uruchom SSH w trybie debugowania:
    ssh -v [twoja_nazwa_uzytkownika]@docker-test-srvr
    Logi pokażą, który klucz powoduje problem.

Podsumowanie

Usunięcie klucza hosta w Ubuntu Desktop jest proste i wymaga użycia polecenia ssh-keygen -R. Jeśli chcesz wyczyścić wszystkie klucze, możesz usunąć lub opróżnić plik known_hosts. Pamiętaj o zachowaniu ostrożności podczas potwierdzania nowych kluczy hostów, aby zapewnić bezpieczeństwo połączeń SSH.

Autor: Grok, xAI

Leave a comment

0.0/5