Разрешить SSH использовать локальный SOCKS-прослушиватель, когда он доступен
Ограничьте проверку Match exec в OpenSSH одним пунктом назначения и поймите, что доказывает и чего не доказывает успешная проверка локального порта.
Локальный SOCKS-прослушиватель полезен в одних сетях и отсутствует в других. OpenSSH может выбирать прокси-команду условно, не делая этот выбор обязательным для каждого узла.
Для OpenSSH с формой nc из OpenBSD пример клиентской конфигурации таков:
Host work-server
HostName ssh.example.net
User alex
Match originalhost work-server exec "nc -z -w 1 127.0.0.1 1080"
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
Match all
originalhost ограничивает проверку именем, указанным в командной строке SSH. exec совпадает, когда его команда завершается успешно. Завершающий Match all закрывает эту условную область для последующих настроек.
Это предполагает, что ни одна более ранняя действующая настройка ещё не выбрала конфликтующую прокси-команду или маршрут перехода. SSH обычно использует первое полученное значение параметра, поэтому широкое значение по умолчанию в начале может помешать более позднему условию дать ожидаемый эффект.
Прослушивающий сокет — скромное обещание
Проверка тестирует доступ по TCP к локальному порту. Она не завершает согласование SOCKS, не устанавливает нужное соединение с пунктом назначения и не доказывает, какая программа владеет этим портом. Прослушиватель может исчезнуть и после проверки.
Тайм-аут удерживает неудачную проверку в разумных пределах. Показанные параметры относятся к интерфейсу nc из OpenBSD; другие программы с тем же именем файла могут предлагать иные параметры.
Когда условие не совпадает, этот пример оставляет соединение без этого ProxyCommand, разрешая обычный маршрут. Это уместно только тогда, когда прямой доступ разрешён. Обязательная политика прокси не должна использовать проверку доступности как разрешение уйти на другой маршрут.
Имя целевого узла SSH и проверки ключа узла по-прежнему идентифицируют сервер назначения. Выбор средства транспорта не является причиной принимать неожиданный ключ узла.