Назад | Перейти на главную страницу

Ошибка туннеля ssh «ssh_exchange_identification: соединение закрыто удаленным хостом»

Я пытаюсь использовать ssh-туннель с моей офисной машины на мою домашнюю машину и получаю сообщение об ошибке при попытке его использовать.

Я запускаю одну оболочку так:

ssh -gL 12345:my.home.domain:22 my.home.domain

Это дает мне надлежащую оболочку, без проблем. То, что я обычно делаю, - это ssh на мою домашнюю машину через эту офисную машину, например:

ssh -p 12345 127.0.0.1

У меня это всегда срабатывало, до прошлой недели, когда я установил новую систему на своем домашнем компьютере (переключился с Ubuntu на Debian). Теперь выдает ошибку. Я все еще могу открыть свое первоначальное ssh-соединение, но когда я пытаюсь использовать этот туннель, я получаю (на офисном компьютере) эту ошибку:

ssh_exchange_identification: Connection closed by remote host

Кроме того, когда это происходит, открытая оболочка, через которую я настроил туннелирование, выводит на себя эту строку:

channel 3: open failed: connect failed: Connection timed out

В этот момент я в растерянности. Если потребуется дополнительная информация, я буду рад ее опубликовать.

============= далее к этому ==============

Поработав дальше, я обнаружил, что получаю другой ответ от сервера (то есть от моей домашней машины), когда я пытаюсь подключиться через telnet к различным портам. Если я попробую:

telnet my.home.domain 22

Я получаю это обратно:

Trying <my ip address>...
Connected to <my domain>.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2

Чего я и ожидал. Однако после настройки туннеля и подключения к нему через telnet я вижу такой ответ:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

============== и еще дальше ==================

Согласно Kbulgrienпредложения, вот вывод клиентской машины с опцией -v:

ssh -vp 24600 127.0.0.1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 24600.
debug1: Connection established.
debug1: identity file /home/jacob/.ssh/id_rsa type -1
debug1: identity file /home/jacob/.ssh/id_rsa-cert type -1
debug1: identity file /home/jacob/.ssh/id_dsa type -1
debug1: identity file /home/jacob/.ssh/id_dsa-cert type -1
debug1: identity file /home/jacob/.ssh/id_ecdsa type -1
debug1: identity file /home/jacob/.ssh/id_ecdsa-cert type -1
ssh_exchange_identification: Connection closed by remote host

Может быть, если у вас более 10 сеансов ssh, ожидающих ввода пароля, у вас такая ошибка, я помню, что это была недавняя ошибка ssh, если вы это проверите, используйте команду ниже

for i in {1..15};do ssh -fNt pippo@remote.server.com & >/dev/null ;done

Примерно так случилось при недавней установке. В этой ситуации /etc/hosts.deny существовал и не имел настроек, явно запрещающих доступ, поэтому обстоятельства кажутся похожими. Необходимо было изменить /etc/hosts.allow, чтобы добавить что-то вроде:

sshd: 192.168.127.0/255.255.255.128

Детали IP необходимо изменить в соответствии с вашими потребностями или заменить на ALL если нет необходимости разрешать ssh отовсюду.

После внесения изменений остановите и перезапустите sshd.

В ответах на следующий вопрос, за которые проголосовали «за», есть больше примеров

SSH hosts.deny и hosts.allow

Вот чужое свидетельство, которое связывает сообщение об ошибке с решением.

Как исправить: ssh_exchange_identification: соединение закрыто из-за проблемы с удаленным хостом при входе в систему с помощью SSH

У меня была такая же проблема, и в конце концов я решил ее, исправив /etc/network/interfaces:

auto eth0
iface eth0 inet static

или

auto eth0
iface eth0 inet dhcp

без этой конфигурации я никогда не получу обратного подключения к моему туннелю ssh.

В моем случае мне пришлось вставить в /etc/ssh/sshd_config машины шлюза следующие строки:

Match User <username>
   GatewayPorts yes

Смотрите подробнее Вот

Надеюсь это поможет!