Назад | Перейти на главную страницу

Можно ли туннелировать SSH через HTTPS с помощью thttpd?

Мне нужно туннелировать мой SSH-сервер через порт HTTPS с помощью thttpd (при необходимости я могу перейти на lighttpd, но я стараюсь избегать установки Apache, поскольку это устройство с недостаточной мощностью). Мне не удалось найти ничего, что подтверждает или отрицает эту способность thttpd.

Если у него есть порт прослушивания 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-адрес Localhost 127.0.0.1 (127.0.0.1 всегда будет возвращать систему, в которую вы вошли)

Из окна Putty перейдите в меню параметров «Категория» в левом столбце. Разверните меню «Соединение»> «SSH»> «Туннели». В текстовом поле «Исходный порт» введите 443, в текстовом поле «Место назначения» введите 127.0.0.1:443 затем щелкните Добавить кнопка. В текстовой области «Перенаправленные порты» теперь будет отображаться «L443 127.0.0.1:443».


(источник: hilands.com)

С терминала 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 вы получите следующее сообщение об ошибке:


(источник: hilands.com)

Продолжайте выполнять запросы и разрешите сертификат.

Хотя Putty будет работать нормально, я бы порекомендовал другой вариант: вы можете создать хороший туннель (на порт 443, очевидно, и не технически https, но, возможно, достаточно хорошо) с использованием WinSSHD и Tunnelier в качестве клиента.

Если вам просто нужно поднести терминал к своей коробке, попробуйте Ajaxterm

Я вообще не знаю thttpd. Я тоже почти не знаю lighttpd.

Но если они могут обслуживать HTTPS, вы можете использовать такой инструмент, как SSL Explorer. Он может сделать гораздо больше, чем просто дать вам SSH-доступ к вашей сети.

В противном случае эти инструменты могут вам помочь:

  • станнель
  • штопор
  • прокси-туннель

Некоторые даже работают с классическим HTTP (без SSL / TLS).

Ты это пробовал? Если нет, то почему? Зачем задавать здесь вопрос, если что-то работает, если вы даже не пробовали? Пока вы говорите только об использовании порта 443 для обхода некоторых брандмауэров, а не о туннелировании через HTTPS, он должен работать нормально (это не совсем понятно из вашего вопроса, вы упоминаете оба).