Возможно ли SSH через порт 80?

Sublime использует Qt, а не GTK +, поэтому не читает темы Gnome GTK +.

Я бы предложил выбрать более подходящую тему Qt, соответствующую вашему выбору GTK +.

(I 'm основывая это на https://packages.ubuntu.com/xenial/libsublime8, который не является вашей версией / приложением, но я не видел версию возвышенного * для bionic)

19
задан 24 February 2012 в 09:58

6 ответов

Хороший корпоративный брандмауэр будет проверять трафик независимо от порта, поэтому изменение порта просто может не сработать.

Если у вас есть контроль над сервером и вы хотите его попробовать, вы можете изменить порт sshd на порт 80. Предупреждение. Если на порту 80 (на сервере) есть что-то еще, это не сработает и, скорее всего, означает, что вы полностью потеряете доступ к серверу SSH!

Вам нужно будет отредактировать /etc/ssh/sshd_config и измените Port на 80. Затем запустите

sudo restart ssh

И затем подключитесь:

ssh user@host -p80

Ваш путь bzr будет выглядеть примерно так: bzr+ssh://host:80/path/

Другой метод - использовать WebDav. Это должно полностью обойти проблему брандмауэра, потому что все это происходит на порту 80, но для этого вам потребуется запустить Apache и установить несколько вещей:

Получить WebDav. Переместить ветку в нужное место. плагин bzr-webdav для подключения

VPN может быть вариантом, но если ssh заблокирован, я ожидаю, что это тоже будет исключено.

Возможно, вы просто хотите поговорить с администраторами сети. Вам нужно что-то сделать, и они останавливают вас. Если у них есть причина блокировки ssh, скорее всего, они будут рассматривать любые крайние попытки обходить его довольно негативно ...

Короче говоря, было бы безопаснее поговорить с ними.

16
ответ дан 25 May 2018 в 13:59
  • 1
    +1, чтобы обсудить ваши потребности с вашим ИТ-отделом. Во многих средах, включенных в мой список, этот вид деятельности был бы основанием для прекращения действия. – Panther 24 February 2012 в 22:33
  • 2
    Кроме того, если он собирается заставить ssh-сервер прослушивать другой порт, он может заставить его прослушивать оба порта 22 и 80, имея две строки Port, по одному для каждого порта в файле /etc/ssh/sshd_config. – Azendale 27 February 2012 в 08:35
  • 3
    Я не буду делать список (список длинный, и обсуждение некоторых предметов на нем может быстро стать очень политическим), но этот вопрос охватывает многие ситуации, кроме ситуаций, когда сотрудник пытается обойти политика компании, которая лояльно реализуется собственным ИТ-отделом компании. Я все для людей, которые обсуждают их потребности в работе с ИТ, но это не всегда применимо, и иногда ИТ-отделы даже отвечают, «Все в порядке, но мы ничего не меняем для вас». Отдельно, вполне правдоподобно, что порт 22 заблокирован VPN, нет, поэтому я думаю, что стоит попробовать. – Eliah Kagan 28 May 2012 в 10:39
  • 4
    @Panther Тогда некоторые люди были бы еще счастливее, чтобы положить конец этому корпоративному режиму. – NeverEndingQueue 13 December 2017 в 11:34

Хороший корпоративный брандмауэр будет проверять трафик независимо от порта, поэтому изменение порта просто может не сработать.

Если у вас есть контроль над сервером и вы все еще хотите его попробовать, вы можете изменить порт sshd на порт 80. Предупреждение. Если у вас есть что-то еще на порту 80 (на сервере), это не сработает и, скорее всего, означает, что вы полностью потеряете доступ к серверу SSH!

Вам нужно будет отредактировать /etc/ssh/sshd_config и измените Port на 80. Затем запустите

sudo restart ssh

И затем подключитесь:

ssh user@host -p80

Ваш путь bzr будет выглядеть примерно так: bzr+ssh://host:80/path/


Другой метод заключается в использовании WebDav. Это должно полностью обойти проблему межсетевого экрана, потому что все это происходит на порту 80, но вам потребуется запустить Apache и установить несколько вещей:

  1. Получить WebDav установлен
  2. Переместите вашу ветку в нужное место
  3. Используйте плагин bzr-webdav для подключения

VPN может быть вариантом, но если ssh заблокирован, я ожидаю, что это тоже будет исключено.

Возможно, вы просто захотите поговорить с администраторами сети. Вам нужно что-то сделать, и они останавливают вас. Если у них есть причина блокировки ssh, скорее всего, они будут рассматривать любые крайние попытки обходить его довольно негативно ...

Короче говоря, было бы безопаснее говорить с ними.

16
ответ дан 4 August 2018 в 17:28

SSH через прокси

Если брандмауэр позволяет вам, вы можете запустить ssh на любой порт, но для этого требуется, чтобы ssh-сервер прослушивал этот порт. Порт 80 вряд ли будет работать, потому что большинство мест, которые имеют брандмауэры, анализируют трафик на этом порту и блокируют все, что не является HTTP. Но порт 443, который обычно является портом HTTPS, часто работает, потому что SSH и HTTPS очень похожи друг на друга на фильтрацию программного обеспечения, поэтому ваш сеанс SSH будет выглядеть как сеанс HTTPS. (Можно отличить HTTPS и SSH, поэтому это не сработает, если брандмауэр достаточно сложный.)

Если у вас есть контроль над сервером, попробуйте прослушать его на порту 443 в дополнение к 22 ( обычный порт ssh). Вы можете настроить порт в /etc/ssh/sshd_config: добавить строку

Port 443

в дополнение к Port 22, которая уже должна быть там. Обратите внимание, что это предполагает, что ssh-сервер не является также сервером HTTPS. Если это так, вам нужно найти другой порт, который брандмауэр позволяет вам использовать или найти другой сервер ssh (см. Переадресацию ниже).

Если вам не нужно устанавливать веб-прокси в своем веб-браузер, вы можете попробовать напрямую подключиться:

ssh -p 443 myserver.example.com

Если это работает, определите псевдоним в вашем ~/.ssh/config:

Host myserver
HostName myserver.example.com
Port 443

Если вам нужно установить веб-интерфейс прокси в вашем веб-браузере, скажите ssh, чтобы пройти через прокси. Установите штопор. Определите псевдоним, подобный этому в вашем ~/.ssh/config, где http://proxy.acme.com:3128/ является прокси-сервером, который вы используете для HTTPS для внешнего (замените соответствующим именем хоста и портом):

Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p

SSH через SSH

Если вы можете добраться до какой-либо внешней машины по одному из вышеперечисленных методов, но не к интересующей вас машине, используйте это для пересылки соединения. Предполагая, что вы можете ssh на машине с именем mygateway, и вы хотите добраться до сервера SSH на mytarget, установите штопор на mygateway (или, если он не запущен Ubuntu, убедитесь, что он команда nc). Поместите это в свой ~/.ssh/config:

Host mytarget
ProxyCommand ssh mygateway nc %h %p

SSH в Apache

Если хост, к которому вы хотите подключиться, уже работает Apache и прослушивает порт 443, и у вас есть контроль над этим хостом вы можете настроить этот Apache, чтобы принимать SSH-соединения и пересылать их. См. Раздел Tunneling SSH через HTTP (S).

14
ответ дан 25 May 2018 в 13:59
  • 1
    вы также можете использовать nc вместо штопора для https, да? stackoverflow.com/a/15577758/32453 – rogerdpack 8 January 2014 в 05:06

Если у вас нет контроля над сервером, чтобы изменить порт SSH на порт 80 или если вы не можете использовать SSH через порт 80, потому что брандмауэр блокирует передачу данных через порт 80, вы можете попробовать TOR.

TOR - огромная сеть. Ваш компьютер подключается к другому компьютеру где-то в мире, этот компьютер подключается к другому, пока не достигнет SSH-сервера. Это все брандмауэр-дружелюбный, происходит на порту 443 (который ваша компания не блокирует, иначе .. ну, это не так уж и умно). Это буквально просто огромный прокси-сервер или VPN, и он тоже зашифрован. Таким образом, вы можете получить доступ к любому хосту на любом порту (также SSH сервера на порту 22).

Взгляните на него в Интернете по адресу www.torproject.org.

2
ответ дан 25 May 2018 в 13:59

Прошу прощения, я должен играть адвоката дьявола.

Я знаю, что, скорее всего, причина для этого, однако, почему ваш администратор сети / брандмауэра не откроет конкретный порт, который вы ищете? С точки зрения безопасности, вы хотите, чтобы веб-инспектор пропустил что-нибудь? Если он настроен на байпасный порт 80 для трафика std, и вы навредите себе путь.

Я согласен с несколькими предложениями выше, где в качестве точки для точки vpn может быть более безопасный вариант , Опять же, с точки зрения безопасности, мне было бы интересно узнать причину, по которой вы действительно обходите политики безопасности, и почему вы не можете поставить ваш сервер в dmz или магистраль для доступа. Только я. Удачи.

2
ответ дан 25 May 2018 в 13:59
  • 1
    Не всегда можно разговаривать с сетевыми администраторами, и сетевые администраторы не всегда разумны. – Jeremy Bicha 16 November 2012 в 21:19
  • 2
    Например, если вы сидите в кафе, подключенном к WiFi, но административный доступ ограничен (и вам все равно нужно подключиться прямо сейчас). – old-ufo 29 June 2017 в 16:50

Я только что прочитал сложное решение здесь:

http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html [!d1 ]

Вы можете использовать SSH на порту 80, даже если ваш домашний сервер также запускает веб-сервер на порту 80.

Предполагая, что домашний сервер запускает Apache. Идея включает в себя включение mod_proxy на вашем сервере, а затем ограничение его на подключение к localhost (proxy.conf):

<IfModule mod_proxy.c>
         ProxyRequests On
        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Deny from all
        </Proxy>
        <Proxy localhost>
          Allow from all
        </Proxy>
        AllowCONNECT 22
        ProxyVia On
</IfModule>

Теперь вы можете выполнить запрос HTTP-подключения к локальному хосту, и веб-сервер установит туннель для вас вам нужно только убедиться, что весь трафик проходит через ваш прокси:

ssh -o 'ProxyCommand nc -X connect -x myhost.example.com:80 localhost 22' myhost.example.com

Убедитесь, что соединения localhost с SSH не являются привилегированными (чтобы не допускать незнакомцев в ...)

Это должно работать, если вы находитесь за маршрутизатором, который позволяет вывести только порт 80.

Если вы находитесь за прокси-сервером (поэтому вам нужно установить прокси-сервер в своем браузере, чтобы получить Интернет), вам нужно будет сначала установите туннель на свой собственный хост, а затем выдайте еще один запрос CONNECT в этом туннеле, чтобы добраться до вашего хоста.

Все возможно, но сделайте это для вашего собственного риска ...

UPDATE:

Или просто просто используйте веб-приложение, которое дает вам SSH через браузер. http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html

2
ответ дан 25 May 2018 в 13:59

Другие вопросы по тегам:

Похожие вопросы: