Zrobiłem kilka prób ustanowienia SSH-connecton dla użytkownika root @ host przy użyciu putty terminal. Robiąc to, podałem kilka razy nieprawidłowe dane uwierzytelniające, a następnie poprawnie je podałem, a następnie po ich zaakceptowaniu sesja ssh zrywa się z
„Serwer niespodziewanie zamknął połączenie sieciowe”.
Ten błąd jest zgłaszany przez szpachlówkę. Podczas próby ssh root @ localhost z lokalnej konsoli - działa dobrze. Działa również dobrze, gdy ssh otheruser @ host z innego hosta. Dlatego problemy z połączeniem sieciowym nie są winne. Jedyny błąd, o którym myślę, to: „Zbyt wiele niepowodzeń uwierzytelniania dla użytkownika root”, chociaż Kit zgłosił inny błąd.
Pytanie brzmi: jak odzyskać od tego błędu i pozwolić, aby Kit zalogował się ponownie? Ponowne uruchomienie sshd wydaje się nie pomagać
Too many Authentication Failures
błąd, zanim będziesz mógł w ogóle się zalogować.Odpowiedzi:
Czy jesteś pewien, że logowanie roota do ssh jest dozwolone?
Sprawdź sshd_config i sprawdź, czy logowanie root jest dozwolone. sshd będzie musiał zostać zrestartowany, jeśli ustawienie się zmieni.
źródło
„Zbyt wiele niepowodzeń uwierzytelniania dla użytkownika root” oznacza, że limit MaxAuthTries serwera SSH został przekroczony . Zdarza się tak, że Twój klient próbuje się uwierzytelnić za pomocą wszystkich możliwych kluczy przechowywanych w /home/USER/.ssh/.
Sytuację tę można rozwiązać na następujące sposoby:
Host host
IdentityFile /home/USER/.ssh/id_rsa
Host host2
IdentityFile /home/USER/.ssh/id_rsa2
źródło
ssh -vv
pokazało próbowanie wielu wersji dwóch kluczy (dostarczonych przez ssh-agent). Zakładam, że jest to spowodowane rzadkim ponownym uruchamianiem komputera i zastępowaniem niektórych kluczy, które wygasły; najwyraźniej ssh-agent nie zastępuje starych kluczy nowymi. Zabiłem ssh-agent i problem zniknął.MaxAuthTries
? Wątpię, aby wiele ataków przeprowadzano próbując wielu różnych kluczy. Poza tym, jeśli atakujący chce to zrobić, może po prostu zamknąć połączenie i otworzyć nowe za każdym razem, gdy osiągnie limit. I tak nie uda im się brutalnie wymusić klucza.Jeśli pojawi się następujący błąd SSH:
Może się to zdarzyć, jeśli masz (domyślnie w moim systemie) pięć lub więcej plików tożsamości DSA / RSA przechowywanych w twoim
.ssh
katalogu. W takim przypadku, jeśli-i
opcja nie zostanie podana w wierszu poleceń, klient ssh najpierw spróbuje się zalogować przy użyciu każdej tożsamości (klucza prywatnego), a następnie poprosi o uwierzytelnienie hasła. Jednak sshd porzuca połączenie po pięciu błędnych próbach logowania (znowu domyślne mogą się różnić).Więc jeśli masz kilka kluczy prywatnych w swoim katalogu .ssh, możesz wyłączyć
Public Key Authentication
w wierszu poleceń, używając-o
opcjonalnego argumentu.Na przykład:
źródło
.ssh
katalogu jest wiele kluczy , nie sądzę, że liczy się ich ilość.Na zdalnym komputerze otwórz / etc / sshd_config i zmień wartość
Jest to typowy problem w przypadku zainstalowania wielu kluczy lub otwarcia wielu połączeń. Sprawdzanie serwera krok po kroku dla każdego klucza, a jeśli MaxAuthTries jest ustawiony na 3, to po pierwszych 3 próbach rozłączy Cię. Typowe bezpieczeństwo ssh.
Sugeruję używanie trybu pełnego podczas połączenia ze zdalnym komputerem w celu analizy problemu.
Zgadywanie jak większość ludzi na tym forum jest NIEPRAWIDŁOWE i marnuje czas. Najpierw spróbuj przeanalizować problem, zbierz informacje, a następnie zapytaj.
Baw się dobrze.
źródło
-v
pokazałem mojemu klientowi ssh, że próbuje użyć wielu kluczy (teraz mam ich całkiem sporo). Wyczyściłem je od agenta za pomocąssh-add -D
To zła praktyka. Wystarczy mieć zwykłego użytkownika na zdalnym urządzeniu i połączyć się przez niego za pomocą ssh, a następnie uzyskać dostęp do roota za pomocą su / sudo.
źródło
Dla mnie ten problem został rozwiązany przez utworzenie poniższego ssh_config dla hosta, z którym się łączyłem.
(~ / .ssh / config)
Problem wystąpił, ponieważ mam o wiele za dużo kluczy ssh w moim
~/.ssh
folderze, na przykład około 16. I bez obu tych dyrektywIdentityFile
ANDIdentitiesOnly
w konfiguracji, moja maszyna najwyraźniej próbowała wszystkich kluczy~/.ssh
i osiągnęła maksymalną liczbę prób przed próbą poprawnego pliku IdentityFile.źródło
Polecam, jak napisałem powyżej Anon, użyj innego użytkownika, aby uzyskać dostęp do ssh, a następnie użyj
su
polecenia, aby uzyskaćroot
dostęp.Upewnij się także, aby włączyć
PermitRootLogin
w/etc/ssh/sshd_config
pliku na serwerze.źródło
Zetknąłem się również z tym samym problemem. Może się to łatwo zdarzyć, jeśli używasz programu Pageant i załadowano do niego dużą liczbę kluczy , ponieważ serwery te liczą każdą ofertę klucza publicznego jako próbę uwierzytelnienia.
(Ta rada pochodzi stąd .)
źródło
Rozwiązałem ten problem w moich systemach, uruchamiając następujące polecenia:
Następnie wypróbowanie ssh na zdalnym komputerze
źródło
Aby tymczasowo rozwiązać ten problem, dopóki sprawy nie zostaną w pełni rozwiązane, jak wspomniano w innym miejscu, możesz zresetować licznik PAM użytkownika, aby mógł spróbować ponownie:
źródło
Ugryzł mnie podobny problem. Jednak prawdziwą przyczyną było to, że miałem
ForwardAgent yes
w pliku konfiguracyjnym maszyny wzdłuż potoku. Łączyłem z maszyny A do maszyny B do maszyny C.Komunikat o błędzie został wyświetlony przy próbie ssh z B -> C, ale był spowodowany aktywnym przesyłaniem dalej. Więc C najpierw podano wszystkie klucze z A, a dopiero potem te z B.
Nagle pojawił się, gdy dodałem jeszcze jeden klucz do A.
źródło
Rozwiązałem ten problem na komputerze Mac przez:
źródło
OK, więc w moim przypadku było to dość dziwne, proszę bardzo ...
Mam standardową maszynę wirtualną z kluczem SSH i mogę SSH do niego za pomocą Putty. Podczas próby dostania się do niego podczas wdrażania w PHPStorm pojawia się
too many authentication failures
błąd. Więc zwiększyłemMaxAuthTries
swoje,sshd_config
a potem dostałemAuth failed
błąd i wtedyAuth cancel
.Teraz nie wiem dokładnie, dlaczego nawet tego spróbowałem, ale ... Dodałem kropkę na końcu ścieżki klucza SSH w oknie wdrażania w PHPStorm. Więc było tak:
a teraz jest tak:
I to działa ... W moim folderze „.ssh” mam więcej plików:
Nie jestem pewien, co robi ta cholerna kropka, ale używanie
.ppk
pliku nie działa, więc myślę, że to rodzaj magii;) Och, i mogłem pozbyć się MaxAuthTries po tej „sztuczce z kropką”.źródło
Inne odpowiedzi podpowiadają ci najlepszy sposób na połączenie się z rootem i implikacje związane z bezpieczeństwem, ale twoje wyraźne pytanie brzmiało:
Wspomniałeś przy ostatnim połączeniu, że serwer zdalny porzucił połączenie.
Myślę, że może się okazać, że na zdalnym serwerze działa fail2ban (*) i „uwięził” twój adres IP po pomyślnym zalogowaniu. Możesz to sprawdzić, próbując zalogować się ponownie, a nawet nie pojawi się monit o zalogowanie.
Istnieją dwa rozwiązania, możesz albo poczekać na czas więzienia, w którym to momencie wszystko wraca do normy, ale czas więzienia może być dowolny. Możesz też znaleźć inny komputer, z którego można się zalogować, zrób to i „usuń z więzienia” swój adres IP, w tym przypadku „inny” jest z perspektywy zdalnego serwera, więc inny komputer za tą samą zaporą prawdopodobnie nie będzie działał .
(*) fail2ban to bardzo przydatny demon, który może okresowo sprawdzać różne pliki dziennika i dostosowywać reguły zapory, aby serwer „znikał”, gdy wykryje potencjalnie złośliwe zachowanie klienta. W debianie wychodzi z pudełka skonfigurowanego do wykrywania wielu nieudanych logowań ssh z określonego adresu IP, a po 3 (myślę) porzuci wszystkie pakiety z tego adresu IP. Działa doskonale, aby powstrzymać te skrypty, ataki brutalnej siły.
źródło
Jak @sufferer wspomniał w innej odpowiedzi, niektóre dystrybucje Linuksa obejmują monitory do ochrony przed atakami siłowymi na zewnętrzne widoczne usługi, takie jak SSH, na przykład
DenyHosts
lubfail2ban
. Monitory te sprawdzają pliki dziennika w poszukiwaniu nieudanych prób i dodają filtry do blokowania adresów IP, które zawierają zbyt wiele awarii (liczbę można konfigurować i niezależnie od konfiguracji sshd).Jeśli Twoja dystrybucja zawiera
fail2ban
, które chronią usługi dodające reguły do zapory iptables, możesz sprawdzić, które usługi lub „więzienia” są nadzorowane za pomocą polecenia:Więzieniem dla usługi SSH jest sshd, więc aby sprawdzić, czy istnieją zabronione adresy IP, możesz użyć:
i aby odblokować trochę abcd IP:
Jeśli tak
DenyHosts
, zablokowana lista znajduje się w pliku /etc/hosts.deny; możesz edytować ten plik bezpośrednio jako root. Aby przyznać trwały dostęp do abcd IP, możesz dodać linięsshd:a.b.c.d
do pliku /etc/hosts.allow.Jak zawsze,
man
polecenie to twój przyjaciel:Powinny istnieć inne podobne narzędzia, ale ja tylko z nich korzystałem.
Zauważ, że zwiększenie liczby ponownych prób w konfiguracji sshd nie zwalnia zbanowanych adresów IP, pozwala tylko na więcej awarii w tym samym połączeniu. Jeśli dozwolona liczba zostanie przekroczona, użytkownik / atakujący po prostu ponownie się łączy, aby spróbować n razy więcej.
Inne usługi miały zintegrowaną listę banów (jak pokazano w odpowiedzi Rajnesha Thakura na temat ponownego uruchomienia serwera VNC).
źródło
Rozwiązałem ten problem, wykonując dwa proste kroki na moim serwerze Ubuntu 16.04 -
Najpierw zatrzymaj mój serwer VNC lub zabij proces -
a następnie uruchom go ponownie -
Następnie podłącz go z klienta pulpitu zdalnego -
Gotowy !!
źródło
wykonaj poniższe czynności, aby rozwiązać problem
I sprawdź ponownie po powyższych zmianach
źródło
Miałem ten sam problem, w którym otrzymywałem komunikat „Serwer SSER wysłał rozłączoną wiadomość typu 2 (błąd protokołu): zbyt wiele błędów uwierzytelnienia dla użytkownika”
Rozwiązałem ten problem, usuwając wszystkie moje ssh (klucze .ppk), a następnie zalogowałem się na zintegrowanym serwerze AD.
źródło