SSH працює в шпаклівці, але не в терміналі


24

Коли я намагаюся сша це в терміналі: ssh username@sub.domain.comя отримую таку помилку:
Connection closed by 69.163.227.82

Коли я використовую шпаклівку, я можу підключитися до сервера. Чому це відбувається, і як я можу змусити це працювати в терміналі?

ssh -v ім'я користувача@sub.domain.com

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

Що ssh -v username@sub.domain.comпоказує?
James Sneeringer

Я оновив головне питання. Також сервер повинен запитати пароль, для входу в систему не потрібні ключі ssh.
Вийди з моєї галявини

Ви змінили будь-які параметри за умовчанням у PuTTY?
Круг

Також ви пробували user@domain.com? Залиште sub.
Круг

1
Ви використовуєте зборку Centrify з OpenSSH, що означає, що ваша система інтегрована AD. Active Directory використовує Kerberos, а OpenSSH скаржиться, що не може знайти KDC Kerberos, тому він випускає. Як виглядає ваш /etc/krb5.confпогляд?
James Sneeringer

Відповіді:


23

Для мене знайдено рішення за такою URL-адресою: http://www.held.org.il/blog/2011/05/the-myterious-case-of-broken-ssh-client-connection-reset-by-peer/

Це навіть робить досить непогану роботу з пояснення того, що відбувається.

У кінцевому рахунку я додав до / 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

Ні шифри, ні HostKeyAlgorithms не працювали самостійно, досить впевнені, що MAC розмістили мене над вершиною, щоб змусити це працювати, але я не можу бути впевнений, вклавши багато годин, щоб це вирішити. Я сподіваюся, що це може принаймні допомогти комусь іншому.


Редагувати: це (іноді) вирішує проблему, але, ймовірно, не так, як вам потрібно. --jcwenger

Ці параметри (як побічний ефект) змінюють спосіб, коли ssh-клієнт випромінює пакети, і, можливо, викликають випромінення менших пакетів. Це не вирішує проблему; просто іноді це робить так, що справжня проблема (фрагментація MTU, взаємодію з дурними реалізаціями правил брандмауера) не спрацьовує.

Правильне рішення - встановити MTU, який працює від кінця до кінця.

Якщо вручну встановити MTU на меншу кількість, щоб забезпечити відсутність фрагментації, чи не є чистішим (ми як користувачі не повинні вручну вживати заходів для протидії проблемам, викликаним нашими мережевими командами) ... але це, принаймні, безпосередньо стосується справжню причину надійним і надійним способом, а не викручуванням налаштувань шифру SSH таким чином, що в якості побічного ефекту, коли зірки вирівнюються, трапляється, що це не робить великих пакетів.

Крім того, SSH - не єдине, що робить великі пакети. Якщо встановити MTU, те ж саме відбувається і з іншими протоколами.


5
дякую, у моєму випадку MACs hmac-md5,hmac-sha1,hmac-ripemd160вистачило лише останнього рядка
Томбарт

У мене були проблеми з github - git pull / git push - нічого не сталося. Спробував ssh -T -v git@github.com і отримав таку ж помилку. Використовували це для її вирішення. Дякую!
Джейсон

У мене була подібна проблема і спробувала це рішення. Одним із побічних ефектів є те, що будь-яке з'єднання з відомим хостом потім звинувачуватиме в зміні ключа хоста.
lfagundes

Усі ці пластири лікують симптом, а не причину. Зменшення розміру шифру може запобігти фрагментації MTU ... що є справжньою проблемою, представленою нижче @jagguli.
jcwenger

Додавання рядка "HostKeyAlgorithms ssh-rsa, ssh-dss" в / etc / ssh / ssh_config вирішило мою проблему, оскільки не вдалося SSH в модем Zyxel. Усі інші рядки у вищенаведеному тетбоксі вже були на моїй машині. Дякую за пораду!
Джефф Райт


6

Це виправило проблему MTU, не потребуючи жорсткого кодування якогось значення, воно виправить її за ssh та будь-яким іншим протоколом, виконаним цим. Як root виконайте такі дії:

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

Більше про проблему та рішення ви можете прочитати тут і тут .


Пояснення: "Виявляється, що файлова система ядра / proc забезпечує простий спосіб включення та відключення зондування TCP MTU, змінивши значення у" файл "/ proc / sys / net / ipv4 / tcp_mtu_probing. Значення 0 = вимкнено ; 1 = увімкнено, коли виявлено маршрутизатор чорної діри; 2 = завжди увімкнено. "
Джордж

1

Зробив деякі дивлячись і знайшов таку пропозицію тут :

Спробуйте переконатися, що наступний рядок у вашому / etc / ssh / ssh_config (NOT sshd_config) НЕ коментується:

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

Ви також можете спробувати повернути цей файл до типового і повторити спробу, тобто видалити та перевстановити openssh-clientназву пакета IIRC.


Це не виправило :(
Вийди з моєї газону


1

Мені вдалося вирішити цю проблему, змусивши використовувати IPv4 з

ssh -4 username@host.xyz

Оскільки я на Mac, я не знаю, які тут налаштування MTU або як їх змінити, але я вважав, що від цього можуть отримати користь інші.


Цей параметр змушує ssh використовувати лише IP4. Я теж на Mac, і це НЕ вирішило мою проблему.
Жорж

0

Я почав мати цю проблему сьогодні, в Windows (ssh поширюється разом з Git) та Ubuntu.

Схоже, це помилка на OpenSSH, на LauchPad є проблема .

Він працював для мене в Windows, примушуючи шифр 3des-cbc і ключ на Ubuntu.


0

Тут трохи некро, але я стикався з цим на OpenSSH_7.8p1, в Linux. Впровадження маркування DSCP в останніх випусках OpenSSH, схоже, активізується у VMware NAT (мостова мережа згадується чудово в нижченаведених посиланнях).

Наразі можна обійти це питання, додавши / встановивши в / etc / ssh / ssh_config :

IPQoS lowdelay throughput

Додатковими факторами може бути те, що PuTTY (або інші відомі SSH-клієнти) можуть не стикатися з проблемою того ж хоста, і ваш MTU поки що перевіряє. тобто:

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

Ці посади були особливо корисні, і мене завели там, де я мав бути:

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.