Обратное динамическое перенаправление SSH: удалённый SOCKS-слушатель
Создайте обратный динамический SOCKS-слушатель на сервере SSH, при котором подключения к назначениям открываются со стороны клиента.
Обычно туннель SSH SOCKS даёт ноутбуку сетевой выход сервера. Обратное динамическое перенаправление переворачивает эту схему: программа на удалённой машине может использовать сеть, доступную вашему SSH-клиенту.
На клиенте OpenSSH, поддерживающем удалённое перенаправление без назначения:
ssh -N -R 127.0.0.1:1080 [email protected]
SOCKS-слушатель находится на remote.example.net и привязан к своему loopback-адресу. Программы там используют 127.0.0.1:1080. Подключения к назначениям идут обратно через SSH и открываются со стороны, где работает ваш клиент.
Читайте направление раньше IP
Документация -R делает пропущенное назначение значимым. Спецификация с port:host:hostport — это, наоборот, фиксированное перенаправление. Не предполагайте, что старый клиент поддерживает краткую динамическую форму.
Внешний IP — это тот, который сеть на стороне клиента использует для таких подключений. Ноутбук за домашним маршрутизатором может выходить через транслированный публичный адрес маршрутизатора. Это не обязательно IP сервера SSH и не адрес, назначенный ноутбуку напрямую.
Держите удалённый слушатель ограниченным. Привязка с подстановочным знаком может позволить другим машинам использовать сеть на стороне клиента как выход, в соответствии с политикой сервера. Даже loopback может быть доступен другим подходящим процессам на удалённом хосте; это не секрет отдельного процесса.
Для ограниченного набора назначений проверьте PermitRemoteOpen и политику перенаправления сервера. Маршрут также зависит от того, остаётся ли клиент в сети. Когда это соединение закрывается, удалённый путь через прокси исчезает. Обратное перенаправление меняет то, откуда возникают подключения; оно не даёт самостоятельного прокси, независимого от сессии SSH.