Можно ли туннелировать SSH через HTTPS с помощью thttpd?
Мне нужно туннелировать мой SSH-сервер через порт HTTPS с помощью thttpd (я могу изменить на lighttpd, если необходимо, но я стараюсь избегать установки Apache, так как это недостаточно мощный блок). Я не смог найти ничего, что подтверждает или опровергает эту способность thttpd.
5 ответов
Если у него есть порт прослушивания TCP/IP, вы можете настроить для него SSH-туннель. Возможно, вы захотите сначала проверить, используется ли порт в вашей клиентской системе. Вы можете сделать это с помощью команды netstat. В Windows вы можете запустить
# netstat -ano
в Linux
# netstat -anut |grep LISTEN
Туннелирование SSH может быть немного сложным, чтобы получить вашу голову вокруг. Со всеми графиками и примерами онлайн даже я запутался и ежедневно пользуюсь туннелями. Я считаю, что лучше всего подумать так: ваш SSH-клиент открывает соединение с сервером и перенаправляет порты из этой сети в вашу * клиентскую систему, создавая прослушивающий порт для каждого перенаправления в вашей * клиентской системе.
- * - Клиентская система - это система, которую вы используете SSH-клиентом, которая также может называться вашей локальной системой.
Похоже, вы хотели бы пример туннеля HTTPS порт 443!
Из клиентской системы Windows
В этом примере будет использоваться клиент "Putty" для Windows, который можно найти на сайте загрузки Putty здесь. Предположим, что вы используете HTTPS через порт 443 в той же системе, где работает SSH-сервер. Мы будем использовать локальный IP-адрес 127.0.0.1 (127.0.0.1 всегда будет возвращать систему, в которой вы вошли)
В окне "Замазка" перейдите в левое меню "Категория". Разверните меню "Соединение" > "SSH" > "Туннели". В текстовом поле "Порт источника" введите 443, в текстовом поле "Пункт назначения" введите 127.0.0.1:443 и нажмите кнопку Добавить. В текстовой области "Переадресованные порты" теперь будет отображаться "L443 127.0.0.1:443"
http://www.hilands.com/img/extern/tunnel_https_localhost.jpg
Из терминала Linux
Это должно работать, я не проверял это хотя....
# ssh -L 443:127.0.0.1:443 <sshuser>@<sshserver ip>
Но мой SSH-сервер находится на другом Сервере, чем мой HTTPS-сервер!
Это легко заменить 127.0.0.1 в приведенных выше примерах на IP-адрес, который ваш SSH-сервер использует для подключения к HTTPS-серверу!
Попался
После настройки туннеля ssh вы можете открыть браузер на своем клиентском компьютере. Вместо того, чтобы переходить на обычный порт IP-адреса 443, вы будете использовать 127.0.0.1 в вашем локальном браузере.
https://127.0.0.1
Это может нарушить ваш сертификат SSL. В Firefox вы получите следующее сообщение об ошибке:
http://www.hilands.com/img/extern/ssl_error.jpg Продолжайте выполнять запросы и разрешите свой сертификат.
Если вам просто нужно получить терминал к вашей коробке, попробуйте Ajaxterm
Хотя Putty будет работать нормально, я бы порекомендовал другой вариант: вы можете создать хороший туннель (на порту 443, очевидно, и не технически https, но, возможно, достаточно хорошо), используя WinSSHD и Tunnelier в качестве клиента.
Я не знаю, что такое вообще. Я едва знаю lighttpd либо.
Но если они могут обслуживать HTTPS, вы можете использовать такой инструмент, как SSL Explorer. Это может сделать намного больше, чем дать вам доступ SSH к вашей сети.
В противном случае эти инструменты могут помочь вам:
- Stunnel
- штопор
- proxytunnel
Некоторые даже работают с классическим HTTP (нет необходимости в SSL/TLS).
Ты это пробовал? Если нет, то почему? Зачем задавать вопрос здесь, если что-то работает, когда вы даже не пробовали это? Пока вы говорите только об использовании порта 443 для обхода некоторых межсетевых экранов, а не об истинном туннелировании по HTTPS, тогда он должен работать нормально (это не совсем понятно из вашего вопроса, вы упомянули оба).