Jestem za zaporą sieciową, która nie pozwala mi ssh przez domyślny port. Z tego powodu nie mogę wypychać żadnych gałęzi bzr do mojego repozytorium. Chciałbym wiedzieć, czy możliwe jest jakoś proxy ssh przez port 80, aby móc przepychać gałęzie.
Słyszałem, że korkociąg pozwala ci to zrobić, ale nie jestem pewien, jak to zrobić dokładnie.
Jeśli znasz jakikolwiek działający serwer proxy, który ci na to pozwala, proszę o tym wspomnieć.
man ssh
ujawnia port: host: hostport. Więc spróbujssh 80:server.com
.Odpowiedzi:
Dobra zapora korporacyjna sprawdza ruch niezależnie od portu, więc zmiana portu może po prostu nie działać.
Jeśli masz kontrolę nad serwerem i nadal chcesz go wypróbować, możesz zmienić port sshd na port 80. Ostrzeżenie Jeśli masz coś innego uruchomionego na porcie 80 (na serwerze), to nie będzie działać i prawdopodobnie oznacza to, że całkowicie stracić dostęp SSH do serwera!
Musisz edytować
/etc/ssh/sshd_config
i zmienićPort
na80
. Następnie uruchomićA następnie połącz:
Twoja ścieżka bzr wyglądałaby wtedy jak:
bzr+ssh://host:80/path/
Inną metodą jest użycie WebDav. Powinno to całkowicie obejść problem zapory ogniowej, ponieważ wszystko dzieje się na porcie 80, ale będzie wymagało uruchomienia Apache i skonfigurowania szeregu rzeczy:
VPN może być opcją, ale jeśli
ssh
zostanie zablokowany, spodziewam się, że zostanie również wykluczony.Możesz po prostu chcieć porozmawiać z administratorami sieci. Musisz coś zrobić, a oni cię powstrzymają. Jeśli mają powód do blokowania
ssh
, prawdopodobnie zobaczą wszelkie ekstremalne próby obejścia go dość negatywnie ...Krótko mówiąc, może być po prostu bezpieczniej z nimi rozmawiać.
źródło
Port
linie, po jednej dla każdego portu w/etc/ssh/sshd_config
pliku.SSH przez proxy
Jeśli zapora na to pozwala, możesz uruchomić ssh na dowolnym porcie, ale wymaga to, aby serwer ssh nasłuchiwał na tym porcie. Port 80 prawdopodobnie nie zadziała, ponieważ większość miejsc z zaporami ogniowymi analizuje ruch na tym porcie i blokuje wszystko, co nie jest HTTP. Ale port 443, który zwykle jest portem HTTPS, często działa, ponieważ SSH i HTTPS wyglądają bardzo podobnie do oprogramowania filtrującego, więc sesja SSH będzie wyglądać jak sesja HTTPS. (Możliwe jest rozróżnienie HTTPS i SSH, więc to nie zadziała, jeśli zapora jest wystarczająco zaawansowana).
Jeśli masz kontrolę nad serwerem, pozwól mu nasłuchiwać na porcie 443 oprócz 22 (normalny port ssh). Możesz skonfigurować port w
/etc/ssh/sshd_config
: dodaj linięoprócz tego,
Port 22
które powinny już tam być. Zauważ, że zakłada to, że serwer ssh nie jest również serwerem HTTPS. Jeśli tak, musisz znaleźć inny port, z którego zapora pozwala korzystać, lub znaleźć inny serwer ssh (patrz przekazywanie poniżej).Jeśli nie musisz ustawiać serwera proxy w przeglądarce, możesz spróbować połączyć się bezpośrednio:
Jeśli to zadziała, zdefiniuj alias w swoim
~/.ssh/config
:Jeśli musisz ustawić serwer proxy w przeglądarce, powiedz ssh, aby przeszedł przez serwer proxy. Zainstaluj korkociąg . Zdefiniuj taki alias w swoim miejscu
~/.ssh/config
, gdziehttp://proxy.acme.com:3128/
jest serwer proxy, którego używasz do HTTPS na zewnątrz (zastąp go właściwą nazwą hosta i portem):SSH przez SSH
Jeśli możesz dostać się na maszynę zewnętrzną za pomocą jednej z powyższych technik, ale nie na maszynie, którą jesteś zainteresowany, użyj tego, aby przekazać połączenie. Zakładając, że możesz ssh na maszynie o nazwie
mygateway
i chcesz połączyć się z serwerem SSHmytarget
, zainstaluj netcat-openbsd namygateway
(lub, jeśli nie jest uruchomiony Ubuntu, upewnij się, że manc
polecenie). Umieść to w~/.ssh/config
:SSH do Apache
Jeśli host, z którym chcesz się połączyć, już działa na serwerze Apache i nasłuchuje na porcie 443 i masz kontrolę nad tym hostem, możesz skonfigurować ten serwer Apache, aby akceptował połączenia SSH i przekazywał je dalej. Zobacz Tunelowanie SSH przez HTTP (S) .
źródło
Właśnie przeczytałem tutaj wyrafinowane rozwiązanie:
http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html
Możesz SSH home na porcie 80, nawet jeśli na twoim serwerze domowym działa serwer WWW również na porcie 80.
Zakładając, że serwer macierzysty uruchamia Apache. Pomysł obejmuje włączenie mod_proxy na serwerze, a następnie ograniczenie go do łączenia się z localhost (proxy.conf):
Teraz możesz wykonać żądanie połączenia HTTP z hostem lokalnym, a serwer WWW utworzy dla ciebie tunel, musisz tylko upewnić się, że cały ruch przechodzi przez serwer proxy:
Upewnij się, że połączenia localhost z SSH nie są uprzywilejowane (aby uniknąć wpuszczania obcych ...)
Powinno to działać, jeśli jesteś za routerem, który pozwala tylko na wyjście 80.
Jeśli jesteś za serwerem proxy (więc musisz ustawić serwer proxy w przeglądarce, aby uzyskać dostęp do Internetu), musisz najpierw założyć tunel do własnego hosta, a następnie wydać kolejne żądanie CONNECT w tym tunelu, aby dostać się do hosta. Jest to bardziej wyrafinowane, w tym celu musisz użyć 2 netcats.
Wszystko jest możliwe, ale rób to na własne ryzyko ...
AKTUALIZACJA:
Lub po prostu skorzystaj z aplikacji internetowej, która daje SSH za pośrednictwem przeglądarki. http://en.wikipedia.org/wiki/Web-based_SSH
źródło
Jeśli nie masz żadnej kontroli nad serwerem, aby zmienić port SSH na port 80 lub jeśli nie możesz SSH przez port 80, ponieważ zapora blokuje ci przesyłanie takich danych przez port 80, możesz wypróbować TOR.
TOR to ogromna sieć. Twój komputer łączy się z innym komputerem gdzieś na świecie, który łączy się z innym komputerem, dopóki nie osiągnie serwera SSH. Wszystko to jest przyjazne dla zapory ogniowej, dzieje się to na porcie 443 (którego twoja firma nie blokuje, albo… no cóż, to nie jest takie mądre). Jest to dosłownie ogromny serwer proxy lub VPN i jest również szyfrowany. W ten sposób możesz uzyskać dostęp do dowolnego hosta na dowolnym porcie (również SSH serwera na porcie 22).
Spójrz na to online na www.torproject.org .
źródło
Przepraszam, muszę grać w adwokata diabłów.
Wiem, że najprawdopodobniej jest ku temu powód, jednak dlaczego administrator sieci / zapory nie otworzy określonego portu, którego szukasz? Z punktu widzenia bezpieczeństwa chcesz zaryzykować, że inspekcja internetowa coś przegapi? Jeśli jest skonfigurowany do ominięcia portu 80 dla standardowego ruchu, a ty narażasz się na niebezpieczeństwo.
Zgadzam się z kilkoma powyższymi sugestiami, w których punkt po punkcie VPN może być bezpieczniejszą opcją. Ponownie, z punktu widzenia bezpieczeństwa, chciałbym poznać powód, dla którego tak naprawdę omijasz zasady bezpieczeństwa i dlaczego nie możesz umieścić swojego serwera w dmz lub w celu uzyskania dostępu. Tylko ja. Powodzenia.
źródło