Я за сетевым брандмауэром, который не позволяет мне ssh через порт по умолчанию. Из-за этого я не могу вставить какие-либо ветки bzr в мой репозиторий. Я хотел бы знать, можно ли как-то прокси ssh через порт 80, чтобы я мог подтолкнуть ветви.
Я слышал, что штопор позволяет тебе это делать, но я не уверен, как именно это сделать.
Если вы знаете какой-либо работающий прокси-сервер, который позволяет вам это делать, укажите его.
man ssh
показывает порт: хост: хост. Так попробуйssh 80:server.com
или около того.Ответы:
Хороший корпоративный брандмауэр будет проверять трафик независимо от порта, поэтому изменение порта может не сработать.
Если у вас есть контроль над сервером, и вы все еще хотите попробовать его, вы можете изменить порт sshd на порт 80. Предупреждение Если у вас есть что-то еще, работающее на порту 80 (на сервере), это не будет работать и, скорее всего, будет означать, что вы полностью потерять SSH доступ к серверу!
Вам нужно будет отредактировать
/etc/ssh/sshd_config
и изменитьPort
на80
. Тогда бегиА затем подключите:
Ваш путь bzr будет выглядеть примерно так:
bzr+ssh://host:80/path/
Другой способ заключается в использовании WebDav. Это должно полностью обойти проблему брандмауэра, поскольку все это происходит на порте 80, но для этого потребуется, чтобы вы запустили Apache и настроили несколько вещей:
VPN может быть вариантом, но если
ssh
он заблокирован, я ожидаю, что это тоже будет исключено.Возможно, вы просто хотите поговорить с администраторами сети. Вам нужно что-то сделать, и они вас останавливают. Если у них есть причина для блокировки
ssh
, скорее всего, они будут рассматривать любые крайние попытки обойти это довольно негативно ...Короче говоря, было бы просто безопаснее поговорить с ними.
источник
Port
строки, по одной для каждого порта в/etc/ssh/sshd_config
файле.SSH через прокси
Если брандмауэр позволяет вам, вы можете запустить ssh для любого порта, но для этого требуется, чтобы сервер ssh прослушивал этот порт. Порт 80 вряд ли будет работать, потому что большинство мест, где есть брандмауэры, анализируют трафик на этом порту и блокируют все, что не HTTP. Но порт 443, который обычно является портом HTTPS, часто работает, потому что SSH и HTTPS очень похожи друг на друга в программном обеспечении фильтрации, поэтому ваш сеанс SSH будет выглядеть как сеанс HTTPS. (Можно различить HTTPS и SSH, поэтому это не будет работать, если брандмауэр достаточно сложен.)
Если у вас есть контроль над сервером, сделайте так, чтобы он прослушивал порт 443 в дополнение к 22 (обычный порт ssh). Вы можете настроить порт в
/etc/ssh/sshd_config
: добавить строкув дополнение к тому,
Port 22
что уже должно быть там. Обратите внимание, что это предполагает, что сервер ssh также не является сервером HTTPS. Если это так, вам нужно найти другой порт, который позволяет использовать брандмауэр, или найти другой ssh-сервер (см. Переадресацию ниже).Если вам не нужно устанавливать веб-прокси в своем веб-браузере, попробуйте подключиться напрямую:
Если это работает, определите псевдоним в вашем
~/.ssh/config
:Если вам нужно установить веб-прокси в вашем веб-браузере, скажите ssh пройти через прокси. Установите штопор . Определите такой псевдоним в вашем
~/.ssh/config
, гдеhttp://proxy.acme.com:3128/
находится прокси, который вы используете для HTTPS снаружи (замените на правильное имя хоста и порт):SSH над SSH
Если вы можете получить доступ к какой-либо внешней машине одним из описанных выше способов, но не к интересующей вас машине, используйте ее для переадресации соединения. Предполагая, что вы можете подключиться к ssh к машине с именем
mygateway
и хотите подключиться к SSH-серверуmytarget
, установите netcat-openbsd onmygateway
(или, если он не работает под Ubuntu, убедитесь, что у него естьnc
команда). Поместите это в свой~/.ssh/config
:SSH к Apache
Если хост, к которому вы хотите подключиться, уже работает под управлением Apache и прослушивает порт 443, и у вас есть контроль над этим хостом, вы можете настроить этот Apache для приема соединений SSH и их переадресации. Посмотрите Туннелирование SSH по HTTP (S) .
источник
Я только что прочитал сложное решение здесь:
http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html
Вы можете использовать SSH на домашнем порту 80, даже если на домашнем сервере также работает веб-сервер на 80-м порту.
Предполагая, что домашний сервер работает Apache. Идея заключается в том, чтобы включить mod_proxy на вашем сервере, а затем ограничить его подключением к localhost (proxy.conf):
Теперь вы можете сделать HTTP-запрос на подключение к локальному хосту, и веб-сервер установит для вас туннель, вам нужно только убедиться, что весь трафик проходит через ваш прокси:
Убедитесь, что локальные соединения с SSH не являются привилегированными (чтобы не допустить незнакомцев в ...)
Это должно работать, если вы находитесь за маршрутизатором, который разрешает только 80 порт.
Если вы находитесь за прокси-сервером (поэтому вам нужно установить прокси в вашем браузере для доступа в Интернет), вам сначала нужно будет установить туннель для вашего собственного хоста, а затем выполнить еще один запрос CONNECT внутри этого туннеля, чтобы попасть на ваш хост. Это более изощренно, вам нужно будет использовать 2 netcats для этого.
Все возможно, но делайте это на свой страх и риск ...
ОБНОВИТЬ:
Или просто, просто используйте веб-приложение, которое дает вам SSH через браузер. http://en.wikipedia.org/wiki/Web-based_SSH
источник
Если у вас нет никакого контроля над сервером для изменения порта SSH на порт 80 или если вы не можете использовать SSH через порт 80, потому что брандмауэр блокирует передачу таких данных через порт 80, вы можете попробовать TOR.
TOR - это огромная сеть. Ваш компьютер подключается к другому компьютеру где-то в мире, этот компьютер подключается к другому, пока он не достигнет сервера SSH. Это все дружественно к брандмауэру, происходит на порту 443 (который ваша компания не блокирует, или иначе .. ну, это не так уж умно с их стороны). Это буквально просто огромный прокси или VPN, и он тоже зашифрован. Таким образом, вы можете получить доступ к любому хосту на любом порту (также SSH сервера на порту 22).
Взгляните на это онлайн на www.torproject.org .
источник
Извините, я должен играть в адвоката дьяволов.
Я знаю, что, скорее всего, есть причина для этого, однако, почему администратор вашей сети / брандмауэра не открывает конкретный порт, который вы ищете? С точки зрения безопасности, хотите ли вы, чтобы веб-инспекция пропустила что-нибудь? Если он настроен на обход порта 80 для стандартного трафика, и вы подвергаете себя опасности.
Я согласен с несколькими предложениями, приведенными выше, где точка-точка может быть более безопасным вариантом. Опять же, с точки зрения безопасности, мне было бы интересно узнать причину, по которой вы действительно обходите политики безопасности, и почему вы не можете поместить свой сервер в dmz или магистраль для доступа. Просто я. Удачи.
источник