SSH działa w kitach, ale nie na terminalach

24

Kiedy próbuję ssh to w terminalu: pojawia ssh [email protected]się następujący błąd:
Connection closed by 69.163.227.82

Kiedy używam kitu, mogę połączyć się z serwerem. Dlaczego tak się dzieje i jak mogę to uruchomić w terminalu?

ssh -v nazwa uż[email protected]

OpenSSH_6.0p1 (CentrifyDC build 5.1.0-472) (CentrifyDC build 5.1.0-472), OpenSSL 0.9.8w 23 Apr 2012
debug1: Reading configuration data /etc/centrifydc/ssh/ssh_config
debug1: /etc/centrifydc/ssh/ssh_config line 52: Applying options for *
debug1: Connecting to sub.domain.com [69.163.227.82] port 22.
debug1: Connection established.
debug1: identity file /home/ryannaddy/.ssh/id_rsa type -1
debug1: identity file /home/ryannaddy/.ssh/id_rsa-cert type -1
debug1: identity file /home/ryannaddy/.ssh/id_dsa type -1
debug1: identity file /home/ryannaddy/.ssh/id_dsa-cert type -1
debug1: identity file /home/ryannaddy/.ssh/id_ecdsa type -1
debug1: identity file /home/ryannaddy/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5
debug1: match: OpenSSH_5.1p1 Debian-5 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: Miscellaneous failure
Cannot resolve network address for KDC in requested realm

debug1: Miscellaneous failure
Cannot resolve network address for KDC in requested realm

debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
Connection closed by 69.163.227.82
Zejdź z mojego trawnika
źródło
Co ssh -v [email protected]pokazuje
James Sneeringer
Zaktualizowałem główne pytanie. Serwer powinien również poprosić o hasło, do logowania nie są wymagane klucze SSH.
Get Off My Lawn
Czy zmieniłeś jakieś domyślne ustawienia w PuTTY?
Kruug
Próbowałeś też [email protected]? Pomiń sub.
Kruug
1
Używasz kompilacji OpenSSH Centrify, co oznacza, że ​​twój system jest zintegrowany z AD. Active Directory używa Kerberos, a OpenSSH narzeka, że ​​nie może znaleźć KDC Kerberos, więc ratuje się. Jak /etc/krb5.confwyglądasz
James Sneeringer

Odpowiedzi:

23

Rozwiązanie znaleziono dla mnie pod następującym adresem URL: http://www.held.org.il/blog/2011/05/the-myterious-case-of-broken-ssh-client-connection-reset-by-peer/

Wyjaśnia nawet, co się dzieje.

Ostatecznie dodałem do / etc / ssh / ssh_config:

Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
HostKeyAlgorithms ssh-rsa,ssh-dss
MACs hmac-md5,hmac-sha1,hmac-ripemd160

Ani Szyfry, ani HostKeyAlgorytmy nie działały same, całkiem pewne, że MAC postawił mnie na czele, żeby to zadziałało, ale nie jestem pewien, włożę wiele godzin w rozwiązanie tego problemu. Mam nadzieję, że to może przynajmniej pomóc komuś innemu.


Edycja: To (czasami) rozwiązuje problem, ale prawdopodobnie nie w sposób, w jaki chcesz. --jcwenger

Te ustawienia wydają się (jako efekt uboczny) zmienić sposób, w jaki klient ssh emituje pakiety i powoduje, że emituje mniejsze pakiety. To nie rozwiązuje problemu; czasami po prostu sprawia, że ​​prawdziwy problem (fragmentacja MTU współdziałająca z głupimi implementacjami reguł zapory ogniowej) nie jest wyzwalana.

Prawidłowym rozwiązaniem jest ustawienie jednostki MTU, która działa od początku do końca.

Konieczność ręcznego ustawienia MTU na mniejszą liczbę w celu zapewnienia braku fragmentacji nie jest wcale czystsza (my jako użytkownicy nie powinniśmy ręcznie podejmować kroków w celu przeciwdziałania problemom powodowanym przez nasze zespoły sieciowe) ... ale to przynajmniej bezpośrednio rzeczywista przyczyna w niezawodny i dający się udowodnić sposób, zamiast popsuć ustawienia szyfru SSH w taki sposób, że efektem ubocznym, gdy gwiazdy się wyrównają, jest to przyczyną, że nie tworzy dużych pakietów.

Ponadto SSH nie jest jedyną rzeczą, która tworzy duże pakiety. Ustawienie MTU powstrzymuje to samo od innych protokołów.

mattw
źródło
5
dzięki, w moim przypadku tylko ostatnia linia MACs hmac-md5,hmac-sha1,hmac-ripemd160była na tyle
Tombart
Miałem problem z github - git pull / git push - nic się nie stało. Próbowałem ssh -T -v [email protected] i dostałem ten sam błąd. Użyłem tego do rozwiązania. Dziękuję Ci!
Jason
Miałem podobny problem i wypróbowałem to rozwiązanie. Jednym efektem ubocznym jest to, że każde połączenie ze znanym hostem oskarżyłoby o zmianę klucza hosta.
lfagundes
Wszystkie te łatki leczą objaw, a nie przyczynę. Zmniejszenie rozmiaru szyfru może zapobiec fragmentacji MTU ... co jest prawdziwym problemem, poruszonym przez @jagguli poniżej.
jcwenger,
Dodanie wiersza „HostKeyAl Algorytmy ssh-rsa, ssh-dss” do / etc / ssh / ssh_config naprawiło mój problem z niemożnością SSH do modemu Zyxel. Wszystkie pozostałe linie w powyższym tetboksie były już na swoim komputerze. Dziękuję za wskazówkę!
Jeff Wright
6

To rozwiązało problem MTU bez konieczności kodowania pewnej wartości, naprawi to dla ssh i dowolnego innego protokołu przez to wywołanego. Jako root uruchom następujące czynności:

echo 2 > /proc/sys/net/ipv4/tcp_mtu_probing

Możesz przeczytać więcej na temat problemu i rozwiązania tutaj i tutaj .

Marwan Alsabbagh
źródło
Objaśnienie: „Okazuje się, że system plików jądra / proc zapewnia łatwy sposób włączania i wyłączania sondowania MTU TCP poprzez zmianę wartości w„ file ”/ proc / sys / net / ipv4 / tcp_mtu_probing. Wartość 0 = wyłączona ; 1 = włączony, gdy wykryty jest router czarnej dziury; 2 = zawsze włączony. "
Jorj
1

Czy ktoś szukał i znalazł tutaj następującą sugestię :

Spróbuj upewnić się, że następujący wiersz w / etc / ssh / ssh_config (NOT sshd_config) NIE jest skomentowany:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

Możesz także spróbować przywrócić domyślny plik i spróbować ponownie, tj. Odinstaluj i ponownie zainstaluj openssh-clientIIRC nazwę pakietu.

LawrenceC
źródło
To nie naprawiło tego :(
Get Off My Lawn
1

Udało mi się rozwiązać ten problem, zmuszając do korzystania z IPv4

ssh -4 [email protected]

Ponieważ jestem na komputerze Mac, nie wiem, jakie są tutaj ustawienia MTU i jak je zmienić, ale pomyślałem, że inni mogą z tego skorzystać.

Bruno Kim
źródło
Ta opcja zmusza ssh do używania tylko IP4. Jestem też na Macu i to nie rozwiązało mojego problemu.
Jorj
0

Zacząłem mieć ten problem dzisiaj w systemie Windows (ssh dystrybuowany z Git) i Ubuntu.

Wygląda na to, że jest to błąd w OpenSSH, jest problem w LauchPad .

Działa dla mnie w systemie Windows, wymuszając szyfr 3des-cbc i klucz w Ubuntu.

LawfulHacker
źródło
0

Trochę nekro tutaj, ale natknąłem się na to na OpenSSH_7.8p1, na Linuksie. Wydaje się, że wprowadzenie oznaczenia DSCP w ostatnich wydaniach OpenSSH potknęło się w VMware NAT (w poniższych linkach wspominano, że w sieci mostkowej jest w porządku).

Możesz na razie obejść ten problem, dodając / ustawiając następujące opcje w / etc / ssh / ssh_config :

IPQoS lowdelay throughput

Dodatkowymi czynnikami mogą być to, że PuTTY (lub inni klienci SSH) mogą nie napotykać problemu z tego samego hosta, a Twój MTU jak dotąd się sprawdza. to znaczy:

ping -M do -s 1472 your-ssh-server

Te posty były szczególnie pomocne i doprowadziły mnie tam, gdzie powinienem być:

https://groups.google.com/forum/#!topic/opensshunixdev/5FK67SCpPg8 https://groups.google.com/forum/#!topic/opensshunixdev/uNd48nGOe7A

Kachunkiunk
źródło
-2

ssh -c aes256-ctr działa dobrze;

udara
źródło
Dlaczego uważasz, że to polecenie rozwiąże problem?
Scott