Заставить ssh -R работать для пересылки на два клиентских ПК с одним IP-адресом, но с разными портами?

Я сделал два одинаковых форварда ssh -R, но работает только одна. Вот моя ситуация:

На работе: сервер / компьютер, к которому я хочу подключиться удаленно

Дома: настольный ноутбук

Маршрутизатор перенаправляет: порт 22 и 49666 на Порты ноутбуков 49667 и 49668 для настольных компьютеров

ИТ-отдел на работе хочет, чтобы я использовал ssh -R на компьютере вместо того, чтобы они по какой-то причине обычно открывали порт (я думаю, они беспокоятся о безопасности, если они уходят порт открыт). Это была большая уступка для них, чтобы позволить мне сделать это, и я не хочу больше спорить с ними из-за обычного открытия порта. Поэтому я делаю это на работе

ssh -R 49666:localhost:22 (home IP) -N   #this is for the laptop

Затем на своем ноутбуке я могу сделать:

ssh localhost -p 49666

и я успешно подключаюсь к рабочему компьютеру.

На работе я также делаю:

ssh -R 49668:localhost:49667 (home IP) -N   #this is for the desktop

Однако на моем рабочем столе, если я пытаюсь

ssh localhost -p 49667

, я получаю:

ssh: connect to host localhost port 49668: Connection refused

Команды в основном аналогичны, поэтому я не уверен, почему одна работает, а другая нет. Сначала я подумал, что, поскольку по умолчанию порт ssh равен 22, мой рабочий стол не прослушивает 49667. Поэтому я зашел в / etc / ssh / sshd_config и изменил его на прослушивание 49667, но я все еще получаю ту же ошибку.

Если я нахожусь за рабочим компьютером и набираю:

ssh (home IP) -p 22

, я успешно захожу на ноутбук. Аналогичным образом, если я наберу

ssh (home IP) -p 49667

, я успешно войду в систему на рабочем столе. Поэтому я не думаю, что это проблема безопасности на моем рабочем столе, так как я могу войти в нее с рабочего сервера.

Моя вторая мысль заключалась в том, что в команде ssh -R часть (домашний IP) пытается перейти на порт 22 с домашним IP, потому что на рабочем компьютере установлен ssh на стандартном порту 22, и он не знает, что Вместо этого я настроил конечный компьютер для просмотра порта 49667. Поэтому моей следующей попыткой было

. Я зашел в ~ / .ssh / config на рабочем компьютере и вставил строку, подобную этой:

host Desktop 
hostname (home ip)
port 49667

Теперь, если я продолжу работу computer и наберите

ssh Desktop

, чтобы он успешно вошел в систему на рабочем столе, так как он в основном такой же, как команда выше:

ssh (home IP) -p 49667

Итак, я пытаюсь выполнить эту строку ssh -R на рабочий компьютер:

ssh -R 49668:localhost:49667 Desktop -N

Теперь, когда я пытаюсь подключиться к серверу ssh к серверу с домашнего компьютера, я получаю эту ошибку:

ssh_exchange_identification: Connection closed by remote host

Что отличается от сбоя I получил раньше (соединение отказало одно, которое я думаю просто означает, что не было никакой переадресации порта вообще). Кроме того, когда я получаю вышеуказанную ошибку, эта ошибка появляется на рабочем сервере (я знаю, потому что я наблюдаю за ней с моего ноутбука)

connect_to localhost port 49667: failed.

Так что я получаю другую реакцию в этом случае, но все же нет успеха И у меня нет идей ...

Все 3 компьютера (рабочий, ноутбук, настольный компьютер) имеют правильные открытые ключи для каждого компьютера. [+1135]

1
задан 28 November 2017 в 05:18

1 ответ

Полагаю, у меня есть неловкая удача выяснить мой ответ через 15 минут после публикации вопроса, поэтому я опубликую свое решение на случай, если у кого-то еще возникнет похожая проблема ... Следующая команда сработала для меня

ssh -R 49668:localhost:22 Desktop -N

По какой-то причине я думал, что второй номер порта (в данном случае 22) должен был быть портом, на котором целевой компьютер (IP-адрес, который находится в файле конфигурации в разделе «Рабочий стол») слушает ssh. Но это сработало, поэтому я ошибся. Возможно, предполагается, что это порт, где прослушивается ssh на компьютере, где выполняется команда ssh -R?

1
ответ дан 28 November 2017 в 05:18

Другие вопросы по тегам:

Похожие вопросы: