На моем рабочем месте блокировщик трафика/брандмауэр становится все хуже. Я не могу подключиться к своей домашней машине через порт 22, и отсутствие доступа по ssh меня огорчает. Раньше я мог использовать SSH, переместив его на порт 5050, но я думаю, что некоторые недавние фильтры теперь обрабатывают этот трафик как IM и, возможно, перенаправляют его через другой прокси. Это мое лучшее предположение; в любом случае, мои ssh-соединения теперь прерываются до того, как я войду в систему.
В последнее время я использую Ajaxterm через HTTPS, так как порт 443 по-прежнему свободен, но это далеко не идеально. (Отстойная эмуляция терминала, отсутствие перенаправления портов, мой браузер с невероятной скоростью утекает из памяти...) Я попытался настроить mod_proxy_connect
поверх mod_ssl
с идеей, что я могу отправить запрос CONNECT localhost:22 HTTP/1.1
через HTTPS, а затем я быть готовым. К сожалению, похоже, это не работает; соединение HTTPS работает до тех пор, пока я не закончу отправку своего запроса; тогда SSL вылетает. Похоже, что mod_proxy_connect
берет на себя все соединение вместо того, чтобы продолжать передавать через mod_ssl
, что чертовски сбивает с толку клиента HTTPS.
Есть ли способ заставить это работать? Я не хочу делать это через обычный HTTP по нескольким причинам:
- Оставлять такой большой толстый открытый прокси просто воняет
- Большой толстый открытый прокси-сервер также не подходит для HTTPS, но с требуемой аутентификацией я чувствую себя нормально.
- HTTP проходит через прокси — я слишком не беспокоюсь о том, что мой трафик будет прослушиваться, так как это ssh будет проходить через туннель «открытым текстом», но гораздо более вероятно, что искажен, чем HTTPS, который принципиально не может быть проксирован
Требования:
- Должен работать через порт 443, не мешая другому HTTPS-трафику (т. е. я не могу просто подключить ssh-сервер к порту 443, потому что больше не смогу обслуживать страницы через HTTPS)
- У меня есть или я могу написать простой клиент перенаправления портов, который работает под Windows (или Cygwin)
Редактировать
DAG: Мне было указано на туннелирование SSH через HTTP(S), но это не помогает: в конце статьи упоминается ошибка 29744 - CONNECT не работает через существующее SSL-соединение, предотвращая туннелирование через HTTPS, а это именно та проблема, с которой я столкнулся. На данный момент я, вероятно, рассматриваю какой-нибудь сценарий CGI, но я не хочу перечислять это как требование, если есть лучшие доступные решения.
(echo -ne "CONNECT localhost:22 HTTP 1.1\r\nHost: proxy.fqdn\r\nProxy-Connection: Keep-Alive\r\n\r\n" && cat) | openssl s_client -quiet -connect proxy.fqdn:443
работала для меня как OpenSSH ProxyCommand - person Mark   schedule 24.02.2016