Skompilowałem OpenSSH_6.6p1 na jednym z naszych serwerów. Jestem w stanie zalogować się przez SSH do zaktualizowanego serwera. Ale nie mogę się z tego połączyć z innymi serwerami z OpenSSH_6.6p1 lub OpenSSH_5.8. Podczas łączenia pojawia się błąd jak poniżej.
Read from socket failed: Connection reset by peer
Na serwerze docelowym w dziennikach widzę to jak poniżej.
sshd: fatal: Read from socket failed: Connection reset by peer [preauth]
Próbowałem podać parametr cipher_spec [ssh -c aes128-ctr destination-server], jak wspomniano tutaj, i udało mi się połączyć. Jak skonfigurować ssh, aby domyślnie korzystał z szyfru? Dlaczego potrzebny jest tutaj szyfr?
telnet ip.or.name.of.offending.server 22
?Odpowiedzi:
Problem brzmi jak błąd po stronie serwera. Gdy klient wysyła listę szyfrów, serwer openssh prawdopodobnie oczekuje, że będzie mógł odczytać listę w jednym wywołaniu systemowym.
Jeśli lista obsługiwanych szyfrów jest dłuższa niż może być przesłana w jednym pakiecie, serwer może otrzymać mniej bajtów w pierwszym wywołaniu, niż się spodziewano. Prawidłowym zachowaniem na serwerze byłoby wykonanie innego wywołania w celu uzyskania pozostałej części bajtów. Ale z opisu problemu wynika, że serwer zamiast tego zamyka połączenie, gdy nie otrzyma pełnej listy szyfrów naraz. Kiedy nadejdzie następny pakiet od klienta, serwer wyśle klientowi reset połączenia.
Skonfigurowanie klienta tak, aby używał krótszej listy szyfrów, pomógłby wtedy w obejściu błędu. Klient openssh wyszuka listę szyfrów w następujących miejscach:
Dwa pliki konfiguracyjne dotyczą odpowiednio ustawień użytkownika i całego systemu. Używanie zgodnie z
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
sugestią Erica powinno działać dobrze.źródło
Możesz podać szyfr w pliku konfiguracyjnym ssh (/ etc / ssh / ssh_config lub podobny, zależy od $ PREFIX itp.). Każdą opcję przekazywaną klientowi ssh w wierszu poleceń można ustawić w pliku konfiguracyjnym ssh (klienta).
Oto odpowiedni wiersz (po prostu odkomentuj):
źródło
Mój sposób, aby to naprawić, mam nadzieję, że pomoże komuś:
Edytuj sshd_config, dodając wartość
Edytuj ssh_config, usuwając komentarz z wartości
źródło
Rozwiązano ten problem, zmieniając poniższe uprawnienia do plików na 600.
Zmodyfikowano również uprawnienia do wszystkich innych plików w „/ etc / ssh /” do 644. Wszystkie pliki muszą być własnością „root”.
Poniżej znajduje się pełny zestaw poleceń do przypisywania odpowiednich uprawnień do wszystkich plików w katalogu „/ etc / ssh”:
źródło
Mój problem, który miał dokładnie te same objawy, co widzisz, był spowodowany obciętymi kluczami hosta. Spróbuj je odtworzyć za pomocą:
źródło