Я хочу подключиться к своему компьютеру (локальному) за NAT через общедоступный сервер (общедоступный).
На местном:
ssh -g -R 8000:localhost:22 user@public
Затем на публике:
ssh -p 8000 user@public
Но я получаю error: Connection refused.
Когда я вхожу на общедоступный сервер, я могу убедиться, что туннель работает:
ssh -p 8000 localhost
Что открывает ssh на локальном компьютере.
Подозреваю ли я что-то не так, что публичный сервер должен действовать как прозрачный прокси? Или как заставить это работать так.
Перенаправление удаленного порта SSH будет по умолчанию привязано к localhost / loopback в целях безопасности. Не всегда предпочтительно разрешать другим хостам доступ к вашим перенаправленным портам.
Чтобы изменить это поведение, вам нужно будет сделать две вещи:
GatewayPorts
вариант на сервере.Укажите адрес привязки, или *
привязать ко всем адресам, на клиенте.
ssh -R \*:8000:localhost:22 user@public
Не используйте звездочку, чтобы оболочка не расширяла ее.
Это больше похоже на проблему с настройками на удаленном компьютере публично. По умолчанию openssh sshd (который, я думаю, используется), параметр GatewayPorts установлен на no, что заставляет переадресацию удаленного порта только слушать на localhost.
Решением было бы отредактировать ваш / etc / ssh / sshd_config (или аналогичный), установив для GatewayPorts значение yes или значение clientpecified. Если вы выберете более позднее время, вам придется изменить запрос туннеля на что-то вроде -R *: 8000: localhost: 22.