Автоматическая пересылка в обратный туннель

У меня есть 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 ответ

Решение

Когда вы подключаетесь с сервера 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,

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

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