Подключение SSH через HTTP-прокси
Проведите SSH-соединение через существующий HTTP CONNECT-прокси с ProxyCommand для каждого хоста.
Совместимым с OpenBSD nc добавьте эту запись хоста в конфигурацию клиента SSH, например ~/.ssh/config:
Host work-through-proxy
HostName ssh.example.com
User alex
ProxyCommand nc -X connect -x proxy.example.net:8080 %h %pДля этого маршрута используйте ssh work-through-proxy. Помощник запрашивает у HTTP-прокси CONNECT к ssh.example.com и передаёт принятый поток SSH. Если направить SSH прямо на порт прокси, его рукопожатие уйдёт в службу, ожидающую HTTP.
Замените конечную точку, назначение и учётную запись. Для публично доступного SSH-назначения, где разрешён публичный посредник, список HTTP-прокси предлагает кандидатов для проверки доступа к этому хосту и порту; выберите конечную точку, которой не нужна учётная запись прокси для показанной команды. Эти параметры OpenBSD nc зависят от реализации; другой исполняемый файл с именем nc может их не поддерживать.
Прокси может требовать собственный вход или отклонить запрошенный порт SSH. Ошибка 407 относится именно к этому обмену с прокси. После открытия туннеля SSH по-прежнему проверяет целевой хост и аутентифицирует пользователя; отклонённый ключ SSH — другая ошибка.
Держите ProxyCommand в нужном разделе Host и при необходимости используйте поддерживаемый выбранным помощником путь аутентификации через прокси. Команда даёт поток, а не разрешение через посредника. Если разрешены только HTTPS-назначения, получите одобренную схему доступа SSH, а не предполагайте, что другое написание команды изменит политику.