ssh без открытия портов

Я обычно предоставляю решения для моих друзей для решения проблем на их машинах с Ubuntu. Большинство из них используют общее интернет-соединение через локальную сеть, где они не могут открыть порты, чтобы я мог получить доступ к своим машинам через ssh. Можно ли подключиться по ssh к машине без открытия портов? Например, такие сервисы, как Teamviewer, позволяют пользователям просто принимать запрос на подключение извне, а если владелец машины разрешает, то машина может использоваться аутентифицированными пользователями. Таким образом, аналогично, если владелец машины разрешает, с некоторой аутентификацией, можно получить доступ по ssh к машине, не открывая порты на маршрутизаторе NAT.

7
задан 1 December 2010 в 20:06

5 ответов

Вы можете сделать это через бэкэнд Эмпатии (телепатия) с помощью другого приложения, называемого ssh-contact .

Я не использовал это лично, но мне кажется, что это хороший способ соединить два новичка в SSH друг с другом.


Конечно, другим способом было бы предоставить вам SSH (я полагаю, вы достаточно компетентны для управления переадресацией портов) и перенаправить порт обратно на ssh-сервер на их машине .

Запустите их для запуска:

ssh -R 48724:localhost:22 your_username@your_ip

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

И затем вы запускаете:

ssh -p 48724 their_username@localhost

Я использую высокий порт, поэтому права root не требуются.

Конечно, для подключения им потребуется openssh-server, но это просто sudo apt-get install openssh-server

0
ответ дан 1 December 2010 в 20:06

Любое входящее соединение любыми способами потребует открытия порта. Просто нет другого способа установить сетевое соединение. Если нет существующего порта, который вы можете использовать, вы не можете просто пойти в этом направлении.

Но вы можете пойти другим путем. Если ваш друг открыл ssh-соединение с вашей машиной и перенаправил порт ssh, то вы можете через ssh вернуться через его туннель к его машине. Это дает вам ssh-соединение с его машиной, которое будет существовать только до тех пор, пока остается его ssh (с переадресацией портов).

Этот метод также утки брандмауэров.

0
ответ дан 1 December 2010 в 20:06

Возможно, эта статья о обратном туннеле SSH могла бы вам чем-то помочь: -nat-с-обращенно-SSH-туннель /

0
ответ дан 1 December 2010 в 20:06

С прямой ssh это невозможно. Однако, вероятно, есть какой-то другой инструмент, который бы выполнил то, что вы пытаетесь сделать.

0
ответ дан 1 December 2010 в 20:06

Вы можете использовать инструмент под названием Ngrok. Это очень легко установить и настроить.

ngrok может обойти ограничения NAT Mapping и брандмауэра, создав долгоживущий TCP-туннель от случайно сгенерированного поддомена на ngrok.com (например, 3gf892ks.ngrok.com) к локальной машине.

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

Прочитайте эту статью — Удаленный доступ без переадресации портов.

0
ответ дан 15 July 2020 в 14:59

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

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