Mam serwer Linux, który po każdym połączeniu pokazuje mi komunikat, który zmienił klucz hosta SSH:
$ ssh root @ host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ OSTRZEŻENIE: ZDALNA IDENTYFIKACJA HOSTA ZOSTAŁA ZMIENIONA! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ JEST MOŻLIWE, ŻE KTOŚ KORZYSTA Z NIESAMOWITEJ! Ktoś może cię teraz podsłuchiwać (atak man-in-the-middle)! Możliwe jest również, że klucz hosta RSA został właśnie zmieniony. Odcisk palca dla klucza RSA wysłanego przez zdalny host to 93: a2: 1b: 1c: 5f: 3e: 68: 47: bf: 79: 56: 52: f0: ec: 03: 6b. Skontaktuj się z administratorem systemu. Dodaj poprawny klucz hosta w /home/emerson/.ssh/known_hosts, aby pozbyć się tej wiadomości. Obrażający klucz w /home/emerson/.ssh/known_hosts:377
Klucz hosta RSA dla hosta 1 został zmieniony i zażądano dokładnego sprawdzenia. Weryfikacja klucza hosta nie powiodła się.
Przez kilka sekund jestem zalogowany, a następnie zamyka połączenie.
host1: ~ / .ssh # Odczyt ze zdalnego hosta host1: Połączenie zresetowane przez użytkownika Połączenie z hostem 1 zamknięte.
Czy ktoś wie, co się dzieje i co mogę zrobić, aby rozwiązać ten problem?
Odpowiedzi:
Nie usuwaj całego pliku znanego_hosta zgodnie z zaleceniami niektórych osób, co całkowicie unieważnia ostrzeżenie. Jest to funkcja bezpieczeństwa, która ostrzega, że mógł się zdarzyć mężczyzna w środku ataku.
Sugeruję, abyś zidentyfikował, dlaczego uważa, że coś się zmieniło, najprawdopodobniej aktualizacja SSH zmieniła klucze szyfrowania z powodu możliwej luki w zabezpieczeniach. Następnie możesz usunąć tę konkretną linię z pliku znanego_hosta:
Ten d eletes linii 377, jak pokazano po okrężnicy w Ostrzeżenie:
Alternatywnie możesz usunąć odpowiedni klucz, wykonując następujące czynności
NIE usuwaj całego pliku i upewnij się, że jest to maszyna, z którą chcesz się połączyć przed wyczyszczeniem określonego klucza.
źródło
Myślę, że chociaż niektóre z odpowiedzi tutaj odnoszą się do zalecanego sposobu działania w pytaniu PO, to nie w pełni odpowiada na pytanie.
Pytanie brzmi: „Jak usunąć ścisłe sprawdzanie klucza RSA w SSH i na czym polega problem?”
Problemem jest tutaj, jak sugerują inni, zmiana hosta prawdopodobnie z powodu ponownej instalacji serwera (najczęstszy scenariusz). A zalecanym rozwiązaniem jest rzeczywiście usunięcie naruszającego klucza z pliku .ssh / Author_keys za pomocą wbudowanego sed.
Jednak nie widziałem żadnych odpowiedzi dotyczących konkretnej części pytania „ Jak usunąć ścisłe sprawdzanie klucza RSA w SSH ”.
Możesz usunąć sprawdzanie StrictHostKey w pliku konfiguracyjnym ssh, zwykle przechowywanym w
~/.ssh/config
.Przykładowy blok hosta znajduje się poniżej:
Specjalnie dodana linia jest ostatnią,
StrictHostKeyChecking no
która robi właśnie to. W zależności od konkretnego scenariusza może to być przydatne, na przykład uruchamianie wielu zwirtualizowanych kontenerów na dedykowanym serwerze, na kilku serwerach ips, zatrzymywanie i uruchamianie innej instancji na tym samym adresie IP.źródło
Kolejny sposób na usunięcie StrictHostKeyChecking, gdy musisz to zrobić tylko dla jednego serwera:
źródło
Przede wszystkim, czy to twoja maszyna? Czy świadomie zmieniłeś klucze hosta? Jeśli nie, byłbym bardzo zaniepokojony, że coś zmieniło te dane.
Po drugie, podkręć debugowanie ssh,
i zobacz, co ci to mówi, spróbuj także zajrzeć, / var / log / secure i / var / log / messages na serwerze, z którym próbujesz się połączyć w celu uzyskania wskazówek, sshd daje dobre komunikaty o błędach.
Po trzecie, czy to urządzenie jest podłączone do Internetu? Czy naprawdę powinieneś zezwalać na logowanie do roota?
źródło
Otrzymujesz to, ponieważ coś się zmieniło (np. Nowa karta sieciowa, nowy adres IP, zmiana oprogramowania serwera itp.). Bezpieczeństwo koncentruje się na ciekawym artykule na temat ochrony klucza hosta SSH .
Po prostu usuń klucz (używając SFTP lub podobnego) z serwera, edytując
$HOME/.ssh/known_hosts
plik i zaakceptuj nowy przy następnym połączeniu.Twoje połączenie może zostać zerwane z powodu ustawienia StrictHostKeyChecking. Zobacz ten wątek dotyczący podobnego problemu.
źródło
Jako „host” [ogólnie zdefiniowany, może to być wszystko, od ponownej instalacji / uruchamiania wielu urządzeń do zupełnie innego komputera z adresem IP, z którym się wcześniej łączyłeś, na przykład] wydaje się, że klient ssh się zmienił, daje ci błąd.
Nie jest konieczne wyłączanie ścisłego sprawdzania, nie jest też sensowne całkowite usuwanie zapisanych kluczy.
Jest całkiem możliwe, aby mieć dwa różne klucze wymienione w znanych_hostach dla określonej nazwy hosta lub adresu IP; dając dwie możliwości w zależności od tego, czy uważasz, że możesz potrzebować „starego” klucza, który jest obecnie przechowywany w znanych hostach
Usuń konkretny klucz, którego dotyczy, na 377 znanych hostów dla OP, lub zachowaj oba
Najprostszym sposobem na zachowanie obu, unikając usuwania kluczy w znanych_hostach, jest
więcej odpowiedzi na „Dodaj poprawny klucz hosta w znane_hosty” / wiele kluczy hosta ssh na nazwę hosta?
źródło