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

10

Я пытаюсь использовать 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 my.home.domain 22

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

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

Что я и ожидал. После настройки туннеля, а затем телеттинг к нему, я вижу этот ответ:

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 марта 2012 г.
debug1: чтение данных конфигурации / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config строка 19: применение параметров для *
debug1: подключение к порту 1276.0.1 [127.0.0.1] 24600.
debug1: соединение установлено.
debug1: файл идентификации /home/jacob/.ssh/id_rsa тип -1
debug1: файл идентификации /home/jacob/.ssh/id_rsa-cert тип -1
debug1: файл идентификации /home/jacob/.ssh/id_dsa тип -1
debug1: файл идентификации /home/jacob/.ssh/id_dsa-cert тип -1
debug1: файл идентификации /home/jacob/.ssh/id_ecdsa тип -1
debug1: файл идентификации /home/jacob/.ssh/id_ecdsa-cert тип -1
ssh_exchange_identification: соединение закрыто удаленным хостом

Джейкоб Юинг
источник
Одна из причин ssh_exchange_identification: Connection closed by remote hostошибки связана с тем, что подключенный хост указан в списке /etc/hosts.deny.
Зоредаче
Хм - если я кошка /ets/hosts.deny на этой машине, каждая строка отмечается.
Джейкоб Юинг
Могу ли я предложить добавить -vв команду ssh, которая не удается? Дает ли следующий результат какой-либо другой признак отказа (т channel 1: open failed: administratively prohibited: open failed. Е. ).
kbulgrien
2
Извините, мне только что пришло в голову, что полезно иметь -vкак в туннеле, так и в сбойных командах ssh (в поисках чего-то большего, чем channel 3: open failed: connect failed: Connection timed out). Можно отметить, что можно добавить несколько -v(до трех), чтобы увеличить многословие. Я бы не стал публиковать весь текст, но стоило бы прочитать слова, которые, кажется, указывают на проблему.
kbulgrien

Ответы:

1

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

for i in {1..15};do ssh -fNt pippo@remote.server.com & >/dev/null ;done
c4f4t0r
источник
0

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

sshd: 192.168.127.0/255.255.255.128

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

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

Upvoted ответы на следующий вопрос предоставляют больше примеров.

SSH hosts.deny и hosts.allow

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

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

kbulgrien
источник
Хм - к сожалению, это не исправило это для меня. Я думаю, что моя ситуация отличается от той, что в примере. Я могу SSH на порт 22 без проблем. Только когда я пытаюсь проложить туннель через другой порт, я получаю упомянутые ошибки.
Джейкоб Юинг
Допустим, что в туннеле есть отличительная разница. Учитывая это, это помогает: обсуждение.dreamhost.com/ thread- 97951.html ? Я также нашел ссылки на указание на то, что удаление и переустановка пакета sshd в системах, подобных debian, исправляет проблему с ключами, которая вызывает поведение, которое вы описываете ( обсуждение.dreamhost.com/ thread- 97951.html и др. И др.) ,
kbulgrien
У вас есть sshd (openssh-server), установленный в обеих системах, верно?
kbulgrien
Yupyup. Я занимался этим довольно долго, и на прошлой неделе у меня возникли проблемы только после перехода на Debian на моей домашней машине (сервере). Я попробую ваше предложение удалить / переустановить sshd, когда вернусь домой сегодня вечером.
Джейкоб Юинг
0

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

auto eth0
iface eth0 inet static

или

auto eth0
iface eth0 inet dhcp

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

dr4ck0
источник
0

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

Match User <username>
   GatewayPorts yes

Подробнее смотрите здесь

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

floatingpurr
источник