помилка тунелю 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: підключення до порту 127.0.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 type -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

Можливо, якщо у вас більше, ніж ssh 10 сеансів, які чекають на вставлення пароля, ви маєте таку помилку, я пам’ятаю, що це була нещодавня помилка ssh, якщо ви перевірите це, скористайтеся командою нижче

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

0

Щось подібне сталося під час недавньої установки. У цій ситуації /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


Хм - на жаль, що це мені не виправили. Я думаю, що моя ситуація відрізняється від прикладу. Я можу без проблем зайти в порт 22. Лише коли я намагаюся пройти тунель через інший порт, я згадаю про помилки.
Яків Юінг

Зазначимо, що тунель - це відмінна різниця. Враховуючи це, чи допомагає це: обговорення.dreamhost.com/ thread- 97951.html ? Я також знайшов посилання на вказівку на те, що видалення та повторна установка пакету sshd в системах, схожих на debian, виправляє проблему з ключами, що викликає описану вами поведінку ( обговорення.dreamhost.com/ thread- 97951.html та ін.) .
kbulgrien

У вас встановлено sshd (openssh-сервер) в обох системах, правда?
kbulgrien

Юпіюп. Я займався цим досить довго, і лише минулий тиждень зіткнувся з проблемою після переходу на Debian на домашній машині (сервері). Я спробую вашу пропозицію про зняття / перевстановлення sshd, коли я повернусь додому сьогодні.
Яків Юінг

0

У мене була така ж проблема, і врешті-решт проблему вирішили, виправивши /etc/network/interfaces:

auto eth0
iface eth0 inet static

або

auto eth0
iface eth0 inet dhcp

без цієї конфігурації я ніколи не отримую зворотного з'єднання зі своїм тунелем ssh.


0

У моєму випадку мені довелося вставити до /etc/ssh/sshd_configшлюзової машини наступні рядки:

Match User <username>
   GatewayPorts yes

Детальніше дивіться тут

Сподіваюся, це допомагає!

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