Korzystam z systemu OS X i próbuję ssh na serwerze Ubuntu 12.04. Byłem w stanie SSH do - aż nagle rzeczy przestały działać. Czytałem online, aby użyć -v
do debugowania tego. Dane wyjściowe pokazano poniżej. Jeśli ssh w innym polu, a następnie ssh z tego pola na serwer, mogę się zalogować. Nie mam pojęcia, jak rozwiązać ten problem, ale chciałbym się nauczyć.
$ ssh -v me@server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug1: Connecting to server [IP] port 22.
debug1: Connection established.
debug1: identity file /Users/me/.ssh/id_rsa type 1
debug1: identity file /Users/me/.ssh/id_rsa-cert type -1
debug1: identity file /Users/me/.ssh/id_dsa type -1
debug1: identity file /Users/me/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: read: Connection reset by peer
Do tej pory (za radą forów dyskusyjnych) szukałem pliku odmowy hosta - ale takiego pliku nie ma na moim komputerze.
$ cat /etc/hosts.deny
cat: /etc/hosts.deny: No such file or directory
Mam dostęp administratora na komputerze klienta, ale nie na serwerze.
sshd
nasłuchiwania na alternatywnym porcie z pełnym wyjściem i dostarczenie wyjścia przy próbie połączenia się z nim.$(which sshd) -d -p 23
. Jeśli nie masz takiej możliwości, masz dość ograniczone możliwości. Najlepiej jest zdobyć kogoś, kto ma uprawnienia administratora na serwerze.Odpowiedzi:
Nagła zmiana może być wynikiem zmiany pliku konfiguracyjnego w konfiguracji serwerów
sshd
, ale użytkownik wskazuje, że nie można tego sprawdzić ani zmienić bez uprawnień administratora. Możesz nadal spróbować wykonać następujące czynności, jeśli nie uda się dotrzeć do administratorów serwera (na czas).Twój dziennik wskazuje tylko ciąg wersji lokalnej, powinieneś sprawdzić wersje
sshd
działające na serwerze i komputerze pośrednim.Jeśli te wersje różnią się (zwłaszcza pomiędzy lokalnym komputerem a serwerem i mniej pośredniego między urządzeniem a serwerem) nie mogą być pewne negocjacje niezgodność, to działo się przed w
ssh
. Rozwiązaniem było skracanie szyfrów, wpisów HostKeyAlgorytmów i / lub adresów MAC, w wierszu poleceń (ssh -c aes256-ctr
itp.) Lub w twoim/etc/ssh/ssh_config
.Powinieneś poszukać informacji o debugowaniu (od połączenia przez serwer pośredni z serwerem) w celu znalezienia odpowiednich wartości jako argumentu dla wiersza poleceń
-c
/Ciphers
,-o HostKeyAlgorithms
/HostKeyAlgorithms
i-m
/MACs
. Zmiany w ssh_config.Od dawna nie miałem tego problemu, ale IIRC wystarczyło, aby ręcznie wymusić ustawienie Ciphers i HostKeyAl algorytmów, po czym mogłem zaktualizować
sshd
wersję serwera i problem zniknął.źródło
sshd
pakiet serwera został zaktualizowany do nowszej wersji i spowodował niezgodność z moją bieżącąssh
konfiguracją klienta, jak powiedziałeś. Usunięcie moich starychssh
plików konfiguracyjnych załatwiło sprawę. To powinna być zaakceptowana odpowiedź.Być może zostałeś zbanowany przez
fail2ban
lubdenyhosts
. W takim przypadku (a także w celu sprawdzenia), jeśli nie chcesz zawracać sobie głowy pomocą dostawcy serwera, musisz zalogować się do swojego serwera z innego adresu IP: np. Innego serwera, połączenia domowego znajomego lub hotspot wifi lub używanie SSH z TOR.Po zalogowaniu sprawdź, czy Twój adres IP rzeczywiście pojawia się w
/etc/hosts.deny
(po stronie serwera). Jeśli tak, tofail2ban
lubdenyhosts
musi być sprawcą.Zobacz odpowiedzi na to pytanie, aby dowiedzieć się, jak zapobiec
denyhosts
ciągłemu blokowaniu adresu. Abyfail2ban
znaleźć swój adres IPiptables -L --line-number
i odblokować go za pomocąiptables -D <chain> <chain number>
, sprawdź szczegółowe informacje na temat howtoforge .Możesz dodać swój adres IP
fail2ban
idenyhosts
białe listy (odpowiednio/etc/fail2ban/jail.conf
, wierszignoreip
i/var/lib/denyhosts/allowed-hosts
utwórz go, jeśli to konieczne (ale uważaj, że ścieżka może być inna w Twojej dystrybucji)), aby zapobiec ponownemu wystąpieniu problemu.źródło
Na serwerze hosta usuń plik ssh pub.key znajdujący się tutaj:
~/.ssh/authorized_keys
na komputerze Mac. Następnietail -f /var/log/auth.log
podczas otwierania innego terminala i spróbuj ponownie sshssh -v me@server
. Jeśli pojawi się monit o hasło, oznacza to, że wystąpił problem z kluczem ssh. Jeśli nadal widzisz odpowiedź „ssh_exchange_identification: read: Connection reset by peer”, powinieneś być w stanie zidentyfikować problem na podstawie wpisu dziennika w pliku „/var/log/auth.log” po nieudanej próbie zalogować się.Jeśli nadal nie możesz się połączyć, opublikuj tutaj wpis z pliku auth, a ja poprawię odpowiedź.
źródło
Może się to zdarzyć, jeśli masz wiele komputerów w sieci o tym samym adresie MAC (na przykład, jeśli wykonasz kopię maszyny wirtualnej i zapomnisz zmienić MAC).
źródło
Otrzymywałem to z powodu serwerów nazw mojego ISP w
/etc/resolv.conf
. Te serwery nazw są często przeciążone, a jeśli odwrotne wyszukiwanie DNS nie powiedziesshd
się, połączenie zostanie przerwane. Rozwiązałem problem, używając bardziej niezawodnych serwerów nazw, np8.8.8.8
.źródło
Miałem ten sam problem. Z powodzeniem otworzę sesję ssh, ale po pewnym czasie zresetuje się. Gdy próbowałem od razu uzyskać wzmocnienie, otrzymałem komunikat o błędzie „Odmowa połączenia”. kiedy debugowałem sesję, dostałem ten komunikat w momencie resetowania połączenia
W tym momencie zdałem sobie sprawę, że w sieci wystąpił konflikt adresów IP. Zmieniłem adres na inny i problem został rozwiązany
źródło
Twój dziennik oznacza, że po stronie serwera zrywa połączenie. Aby znaleźć przyczynę, powinieneś sprawdzić dzienniki po stronie serwera, powinny one wskazywać powód rozłączenia. Prawie zawsze powinieneś być w stanie znaleźć dzienniki w / var / log / messages
Mogłem zgadywać, że gdy połączenie zostało przerwane tuż po wysłaniu przez klienta numeru wersji, serwer w jakiś sposób grozi klientowi jako niezgodny.
źródło
Miałem ten sam problem, ale okazało się, że przyczyna była inna: korzystałem z niewłaściwego portu.
W nowszych wersjach
ssh
podany błąd toConnection refused
lubBad port
.W starszych wersjach podany jest błąd
ssh_exchange_identification: read: Connection reset by peer
Kiedy pojawi się taki błąd, sprawdź, czy port jest poprawny.
źródło
Wiem, że to pytanie jest stare, ale chciałem podzielić się niektórymi wnioskami. Sprawdź, czy
/var/empty/sshd
na serwerze ma odpowiednią własność i uprawnienia.Mieliśmy skrypt szefa kuchni, który został zmodyfikowany, aby zaktualizować niektóre uprawnienia do katalogu, ale przypadkowo zaktualizowałem katalog poniżej zamierzonego celu, zmieniając własność / var na użytkownika / grupę aplikacji i zmieniając uprawnienia na 775.
źródło
Ponieważ nie zostało to wyraźnie wymienione w odpowiedzi, ten błąd może pojawić się również wtedy, gdy zapora sieciowa między tobą a serwerem zdecyduje się zablokować połączenie. Zapora mogła zdecydować, że istnieje „zbyt wiele” połączeń z adresu IP systemu OS X i zaczęła go blokować. Nie było jeszcze „zbyt wielu” połączeń z drugiego systemu, więc było to dozwolone.
Ostatnia wiadomość otrzymana z serwera to taka, która pojawia się jeszcze przed rozpoczęciem jakichkolwiek prób uwierzytelnienia, co wyklucza dużą klasę możliwości związanych z Twoim kontem, kluczem lub hasłem.
Przykładami takich zasad brutalnej siły z losowego próbkowania dostawców są:
źródło