Назад | Перейти на главную страницу

Перенаправление портов SSH

Я хочу подключиться к своему компьютеру (локальному) за 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.