У меня есть клиентский ноутбук linux fedora21 за корпоративным брандмауэром (который пропускает через порты http и https, но не через ssh 22), и у меня есть сервер linux fedora21 дома за моим собственным маршрутизатором. Просмотр с помощью https работает, когда я указываю публичный IP-адрес моего домашнего сервера (потому что я настроил свой домашний маршрутизатор)
Можно ли подключить ssh (удаленная оболочка) к моему домашнему серверу через порт http / s?
Я видел инструмент под названием corkscrew
. это поможет?
opensshd
и httpd
запустить на домашнем сервере. Что еще нужно будет настроить?
sshd
http-proxy
MMM
источник
источник
Ответы:
Что возможно, зависит от того, что позволяет брандмауэр.
Если межсетевой экран разрешает произвольный трафик через порт 443
Некоторые брандмауэры используют простой выход и разрешают все на порту 443. Если это так, самый простой способ получить доступ к вашему домашнему серверу - это заставить его прослушивать соединения SSH на порту 443. Если ваша машина напрямую подключена к Интернету, просто добавить
Port 443
в/etc/ssh/sshd_config
или/etc/sshd_config
чуть ниже линии , которая говоритPort 22
. Если ваша машина находится за маршрутизатором / брандмауэром, который перенаправляет входящие соединения, сделайте так, чтобы она перенаправляла входящие соединения на порт 443 на порт 22 вашего сервера с чем-то вродегде
wan0
- интерфейс WAN на вашем маршрутизаторе, а 10.1.2.3 - IP-адрес вашего сервера в вашей домашней сети.Если вы хотите разрешить вашему домашнему серверу прослушивать как HTTPS-соединения, так и SSH-соединения через порт 443, это возможно - трафик SSH и HTTPS можно легко различить (в SSH сервер сначала говорит, а в HTTP и HTTPS - клиент первый). См. Http://blog.stalkr.net/2012/02/sshhttps-multiplexing-with-sshttp.html и http://wrouesnel.github.io/articles/Setting%20up%20sshttp/, чтобы узнать, как установить это с sshttp , а также иметь SSH на порт 80 или 443, в то время как веб-сервер (nginx) работает на этих портах
Если у вас есть веб-прокси, который позволяет CONNECT туннелирование
Некоторые брандмауэры блокируют все исходящие соединения, но позволяют просматривать веб-страницы через прокси-сервер, который позволяет методу HTTP
CONNECT
эффективно пробить дыру в брандмауэре.CONNECT
метод может быть ограничен определенными портами, поэтому вам может потребоваться совместить это с прослушиванием на порту 443, как описано выше.Чтобы заставить SSH проходить через прокси, вы можете использовать такой инструмент, как штопор . В вашей
~/.ssh/config
, добавьтеProxyCommand
строку, как показано ниже, если ваш веб-проксиhttp://web-proxy.work.example.com:3128
:Обертывание SSH в HTTP (S)
Некоторые брандмауэры не допускают трафик SSH, даже через порт 443. Чтобы справиться с этим, вам нужно замаскировать или туннелировать SSH в то, что пропускает брандмауэр. См http://dag.wiee.rs/howto/ssh-http-tunneling/ для учебника по делать это с proxytunnel .
источник
ProxyCommand nc -X connect -x __proxy_IP__:__port__ %h %p
Вы можете попробовать другой способ, настроить веб-сервер, который может SSH вашего сервера,
https://github.com/huashengdun/webssh
источник
Вы можете использовать sslh, если хотите запустить ОБА HTTPS-сервер и SSHd-сервер на одном и том же порту 443.
источник