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ę
Port 443
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:
ssh -p 443 myserver.example.com
Jeśli to zadziała, zdefiniuj alias w swoim ~/.ssh/config
:
Host myserver
HostName myserver.example.com
Port 443
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
, gdzie http://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):
Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p
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 SSH mytarget
, zainstaluj netcat-openbsd na mygateway
(lub, jeśli nie jest uruchomiony Ubuntu, upewnij się, że ma nc
polecenie). Umieść to w ~/.ssh/config
:
Host mytarget
ProxyCommand ssh mygateway nc %h %p
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) .
man ssh
ujawnia port: host: hostport. Więc spróbujssh 80:server.com
.