Нека SSH използва локален SOCKS слушател, когато е наличен
Ограничете проверката OpenSSH Match exec до една дестинация и разберете какво доказва и какво не доказва успешната проверка на локален порт.
Локалният 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 хост и проверките на хост ключа все още идентифицират сървъра на дестинацията. Изборът на транспортен помощник не е причина да се приеме неочакван хост ключ.