Исключение одного SSH-хоста из маршрута SOCKS по умолчанию
Поместите исключение ProxyCommand none перед правилом wildcard по умолчанию и проверьте действующую конфигурацию OpenSSH для запрошенного хоста.
Если конфигурация OpenSSH по умолчанию использует соединение SOCKS, поставьте именованное исключение перед этим широким правилом:
Host internal.example
ProxyCommand none
Host *
ProxyCommand nc -X 5 -x proxy.example:1080 %h %p
В этом примере используется интерфейс параметра nc из OpenBSD для SOCKS5. Подключение через ssh internal.example выбирает исключение; остальные хосты получают соединитель по умолчанию. Для разрешённых публичных SSH-назначений запись без учётной записи из списка прокси SOCKS5 может дать адрес прокси по умолчанию, если она допускает каждый реальный хост и порт SSH; сохраните нужное внутреннее исключение.
Порядок важен, потому что OpenSSH использует первое полученное значение параметра. Исключение должно встретиться раньше, чем подходящее значение по умолчанию задаст ProxyCommand, включая значения, прочитанные через файлы Include.
Проверьте действующие настройки для конкретного вызова командой:
ssh -G internal.example
Шаблоны хостов сопоставляются с именем, которое используется для вызова SSH. Если команда применяет псевдоним, чей HostName указывает на internal.example, дайте этому псевдониму то же исключение. Так правило остаётся привязанным к реальному поиску в конфигурации, а не к предположению, что эквивалентное имя в DNS выбирает тот же блок.