Od około miesiąca łączę się ze zdalnym serwerem za pośrednictwem komputera Mac. Jednak od niedawna próbowałem połączyć się za pomocą ssh dylan @ MY_IP i otrzymałem tę wiadomość.
ssh_exchange_identification: read: Connection reset by peer
Mam też informacje diagnostyczne ...
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 *
debug2: ssh_connect: needpriv 0
debug1: Connecting to {MY IP{ [MY IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/id_rsa type -1
debug1: identity file /Users/watson/.ssh/id_rsa-cert type -1
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/watson/.ssh/id_dsa" as a RSA1 public key
debug1: identity file /Users/watson/.ssh/id_dsa type 2
debug1: identity file /Users/watson/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
Po przeprowadzeniu badań wypróbowałem następujące ...
- Uruchomiłem ponownie router
- Wyczyściłem mój plik „znane_hosty”
- Usunięto mój plik „znane_hosty”
- Wydałem i odnowiłem mój DHCP
- Próbowałem też z innego urządzenia (Windows) przy użyciu Putty z błędem
Pamiętaj, że nie wprowadziłem żadnych zmian na serwerze, aby zablokować tę komunikację.
Nie jestem też pewien, czy to spowodowałoby problemy, ale podłączyłem się do niego zarówno przez nazwę domeny, jak i adres IP.
Ponadto udało mi się pomyślnie połączyć z innego adresu IP.
Wiem, że jest to duży problem z wieloma zasobami, ale wiele rozwiązań nie zadziałało, ani też nie widziałem żadnej rozdzielczości dla nikogo.
Aktualizacja
Zmusiłem go do protokołu 1. Zamiast „Resetowania połączenia przez peera”, teraz otrzymuję „Połączenie zamknięte przez hosta zdalnego”. Uruchomienie go z ujawnionymi informacjami debugowania:
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 *
debug2: ssh_connect: needpriv 0
debug1: Connecting to MY_IP [MY_IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/identity type -1
debug1: identity file /Users/watson/.ssh/identity-cert type -1
ssh_exchange_identification: Connection closed by remote host
/Users/watson/.ssh/id_dsa
? Spróbuj wykonać kopię zapasową pliku i usunąć go.ssh -1 ...
Odpowiedzi:
W ten sposób rozwiązałem błąd „ssh_exchange_identification: Połączenie zamknięte przez zdalny host” podczas łączenia się z serwerem SSH.
Wystąpił ten błąd podczas próby połączenia z wbudowanym komputerem z systemem Linux po rozpakowaniu pakietu do rootowania. Wiele plików biblioteki zostało zastąpionych, w tym libssl.
Próbować połączyć:
Googling wydawał się sugerować tylko sprawdzenie hosts.deny i hosts.allow, ale mój komputer docelowy nie miał takich plików.
Po ponownym uruchomieniu (zgodnie z sugestią Karthika) sshd nie działał. Próbowałem ręcznie uruchomić sshd na celu:
Zastąpiłem /usr/lib/libssl.a oryginalną wersją i uruchomiłem sshd i wszystko wróciło do normy. Problem był w moim przypadku spowodowany niepoprawną wersją pakietu, który pierwotnie rozpakowałem do roota.
źródło
Otrzymywałem ten sam błąd (ale z dowolnej maszyny, w tym z kłopotliwej maszyny przez
ssh localhost
).Zaczęło się, gdy przeprowadziłem migrację profilu użytkownika; tj. po skopiowaniu plików jako root, a następnie polecenia jak
chown -R username /Users/username/Destop
tak czy inaczej, całkowicie nie wiem, dlaczego / var / empty owner został zmieniony na nazwę użytkownika, ale
ssh
zdecydowanie musi/var/empty
być własnością root (w przeciwnym razie otrzymaszssh_exchange_identification: read: Connection reset by peer
):źródło
/var/empty
naprawiła dla mnie problem.To nie jest problem z lokalną maszyną, ale problem po stronie serwera. Przyczyną tego problemu może być wiele czynników :
W przeszłości, kiedy miałem te problemy, robiłem jedną z dwóch rzeczy, w następującej kolejności:
Najczęściej 1 rozwiązuje problem, ale w niektórych przypadkach musiałem zrobić 2. Nie byłem w stanie zrozumieć, dlaczego tak jest, tylko że zadziałało. Być może ma to coś wspólnego ze sposobem, w jaki klucz jest prezentowany, a może w jakiś sposób został uszkodzony - nie jestem pewien. Ale wiem, że błąd jest całkowicie związany z serwerem i sposobem, w jaki uścisk dłoni zdarza się, gdy połączenie SSH jest ustawiane uo.
źródło
Miałem SSH skonfigurowane z Cygwin, aw moim przypadku to właśnie zapora systemu Windows spowodowała właśnie ten błąd, więc upewnij się, że zezwalasz na połączenia z portem 22.
źródło
Naprawdę łatwo udało mi się rozwiązać ten problem.
W normalnym systemie OS X możesz rozwiązać ten problem, po prostu przełączając opcję „Zdalne logowanie” w Preferencjach systemowych / Udostępnianiu.
Jeśli jednak jest to serwer bezgłowy (jak w moim przypadku), możesz użyć aplikacji OSX Server, aby przejść do (nazwa twojego serwera) / Ustawień i przełączyć „Bezpieczne połączenia powłoki ponownie”
źródło
Jeśli używasz klucza prywatnego lub klucza bezpieczeństwa do logowania się na serwerze, musisz zmienić uprawnienia do pliku klucza na 660, używając polecenia
sudo chmod 660 nazwa_pliku
źródło
ssh
niedziałania, nie jest jasne, w jaki sposób ten problem losowo spowodowałby działający system. (2) Taka odpowiedź, taka jaka jest, byłaby bardziej przydatna, gdybyś zidentyfikował plik, o którym mówisz, lub dostarczył instrukcje pozwalające użytkownikowi go zidentyfikować. (3) Myślę, że mówisz o pliku w (pod) katalogu domowym użytkownika. W takim przypadkusudo
nie powinno być to konieczne.