Я пытаюсь использовать 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.
В ответах на следующий вопрос, за которые проголосовали «за», есть больше примеров
Вот чужое свидетельство, которое связывает сообщение об ошибке с решением.
У меня была такая же проблема, и в конце концов я решил ее, исправив /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
Смотрите подробнее Вот
Надеюсь это поможет!