Меню показывает SSH-подключение активным, ключ узла принят, а браузер по-прежнему не достигает ничего из того, чего должен был достичь. Это не противоречие, потому что профиль NetworkManager-ssh может дать два совершенно разных результата из одного и того же узла и одного и того же ключа: туннельное устройство, переносящее пакеты, или набор перенаправлений, которыми могут пользоваться только определённые приложения. Индикатор сообщает, что управляемое SSH-отношение существует. Он никогда не сообщает, какой из двух результатов вы получили.

Два результата за одним пунктом меню

Оба режима аутентифицируются одинаково, и именно поэтому их путают. Выбор профиля точно таким же способом, с теми же учётными данными, может оставить вас либо с интерфейсом, через который можно маршрутизировать, либо со слушающим сокетом, о котором нужно сообщить одному приложению.

Начните с решения, какой результат действительно нужен задаче. Требование доступности всей подсети требует устройства. Одной службе на удалённом узле нужно перенаправление, а построение для неё туннеля обычно создаёт больше работы по маршрутизации, чем проблема заслуживала.

Что должно быть у каждого режима до того, как он заработает

Проект документирует оба режима, и предварительные условия различаются настолько, что отсутствующее выглядит как сбой протокола, а не как проектное решение.

ModeWhat must existWhat still has to be true
Tunnel deviceCompatible TUN/TAP arrangement on both ends, permission, addressingA route policy that actually sends the intended prefixes into it
Forwarding onlyA chosen SOCKS, local-forward or remote-forward listenerA permitted destination path on the far side

Внимательно прочитайте правый столбец, потому что именно там заканчивается большинство таких заявок. Даже безупречно построенное туннельное устройство покрывает только то, что маршрутизация отправляет в него, и даже идеальное перенаправление помогает только тем приложениям, которым сказано им пользоваться.

Фиктивный интерфейс — не туннель

В режиме перенаправления плагин документирует фиктивный интерфейс, создаваемый для удовлетворения модели соединения. Он существует, чтобы менеджеру было к чему привязать состояние. Он не переносит произвольные пакеты приложений в удалённую сеть, и ничто в его присутствии не означает, что маршрутизация IP изменилась.

Примеры полного туннеля в проекте касаются поддержки туннельного устройства OpenSSH, поэтому слово туннель в метке описывает возможность, а не вашу фактическую политику. Проверьте, что сделает ядро, а не как называется профиль.

nmcli connection show --active
ip -br link
ss -lntp | grep -E "1080|8080"

Затем сопоставьте результат с приложением. Программа, понимающая SOCKS, должна быть настроена на использование прокси. Потребителю локального перенаправления нужно указать на его слушающий сокет. Ни один из них не обнаруживает перенаправление сам, и ни одному не помогает индикатор соединения, ставший зелёным.

Подготовьте удалённую сторону, а не принуждайте её

Обычная учётная запись SSH может пройти аутентификацию без какого-либо разрешения поднимать удалённое туннельное устройство. Проект документирует путь без root, при котором администратор заранее создаёт устройство для этого пользователя, а клиент затем выбирает соответствующий номер.

Такая схема требует согласования с политикой туннелей сервера и с тем, кто владеет адресацией в удалённой сети. Создание устройства само по себе не даёт маршрутов к ресурсам, разрешений на перенаправление или обратного пути, и ничто из этого не появляется потому, что пример конфигурации выглядел убедительно.

Чего делать не следует — включать неограниченное перенаправление или удалённый вход root, чтобы пример заработал. Там, где оператор владеет настройкой удалённой сети, используйте поддерживаемую схему, чтобы оставить эти команды этому владельцу, и избегайте второго помощника, который при отключении восстанавливает противоречивые адреса.

Контекст аутентификации и что писать в заявке

У аутентификации свой контекст. Плагин ищет SSH-агент, связанный с сеансом пользователя, и требует, чтобы целевой узел был известен, поэтому ключ, работающий в одном терминале, не становится автоматически видимым для пути аутентификации менеджера. Зарегистрируйте и проверьте ключ узла через одобренный процесс вместо того, чтобы отключать проверку.

Для поддержки запишите четыре вещи: плагин и версию, выбранный режим, предполагаемую удалённую идентичность и интерфейс или слушающий сокет, который должен был появиться. Затем проверьте точку входа приложения напрямую. Подключённый индикатор вместе с работающим тестом — это доказательство; один подключённый индикатор — это утверждение об SSH, а не о маршрутизации или разрешении на ресурс, которое вы пытались получить.

Похожие статьи