1

У меня есть Raspberry Pi (удаленный), который находится за NAT. Чтобы получить к нему доступ с моего домашнего компьютера (локального), я подключаю его к своему ASW-серверу (серверу) через обратный туннель, как описано в различных статьях.

Удаленное подключение к серверу:

ssh -f -N -T -R22222:localhost:22 -i ssh-ec2/ec-key.pem ec2-user@xxx.xxx.xxxx.xxx

Затем я могу подключиться к своему ASW-серверу через SSH, и после входа в систему я могу подключиться к Raspberry через:

ssh -p 22222 pi@localhost

Это все работает отлично.

Моя проблема сейчас в том, что я хочу сделать удаленный сеанс с intellij из моего локального непосредственно в мой удаленный Raspberry. Для этого мне нужно подключиться к моему серверу через SSH, а затем вручную ввести снова подключенный к моему пульту.

Как я могу настроить туннель, чтобы я мог подключиться к своему серверу, но напрямую к порту 22222? Я попробовал следующее с моей локальной машины, но время соединения истекло:

ssh -l 9999:localhost:22222 ec2-user@52.201.173.131 -i c:/privatekey.pem

Есть предложения, что я делаю не так? Извините, я совсем новичок в Linux, поэтому извиняюсь, если это глупый вопрос.

1 ответ1

3

Когда вы подключаетесь с вашего сервера ASW, вы подключаетесь к localhost . Обратите внимание, что man 1 ssh говорит:

-R [bind_address:]port:host:hostport

[...]

По умолчанию прослушивающий сокет на сервере будет связан только с интерфейсом обратной связи. Это можно переопределить, указав bind_address . Пустой bind_address или адрес * указывает, что удаленный сокет должен прослушивать все интерфейсы. Указание удаленного bind_address будет успешным, только если включена опция GatewayPorts на сервере (см. sshd_config(5)).

Тогда man 5 sshd_config говорит:

GatewayPorts

Указывает, разрешено ли удаленным узлам подключаться к портам, перенаправленным для клиента. По умолчанию sshd(8) связывает перенаправления удаленных портов с адресом обратной связи. Это предотвращает подключение других удаленных хостов к перенаправленным портам. GatewayPorts можно использовать для указания того, что sshd должен позволять перенаправлениям удаленных портов связываться с адресами без обратной связи, что позволяет другим хостам подключаться. Аргумент может быть « no чтобы принудительно сделать переадресацию удаленных портов доступным только для локального хоста, « yes заставить принудительно переадресацию удаленных портов связываться с подстановочным адресом или clientspecified чтобы позволить клиенту выбрать адрес, с которым связана переадресация. По умолчанию no .

Чтобы это работало, вы должны сделать что-то вроде этого:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .