Jak łatwo odrzucić dowolne połączenia przez znany serwer SSH, aby uniknąć zapory ogniowej portów


1

Szukałem metody połączenia z dowolnymi serwerami SSH za pośrednictwem znanego serwera proxy SSH, bez konieczności kodowania tych serwerów docelowych.

Na przykład, powiedzmy, że nie mogę uzyskać dostępu do github.com z mojej bieżącej lokalizacji, ponieważ port 22 jest zaporą ogniową, ale mogę połączyć się z moim serwerem SSH w domu, ponieważ przechodzi on przez port bez zapory ogniowej. Jaki jest najbardziej praktyczny sposób skonfigurowania SSH, aby to zrobić, gdy jawnie chcę się połączyć za pośrednictwem mojego serwera proxy?

Chciałem łatwego rozwiązania; taki, który byłby tak prosty jak pisanie:

$ ssh user@server-i-want-to-connect-to.proxy

Przykładem może być „ssh użytkownik@github.com.proxy”.


1
kiedy mówisz proxy, masz na myśli proxy HTTP? Jeśli tak, sprawdź korkociąg agroman.net/corkscrew
jackweirdy,

Nie, przez proxy rozumiem serwer SSH, z którym możesz się połączyć (maszyna, którą posiadasz). Znalazłem sposób, aby to zrobić, ale muszę poczekać 8 godzin, zanim będę mógł odpowiedzieć na własne pytanie ...
sleblanc,

Odpowiedzi:


2

Dodaj coś takiego do swojego .ssh/config

Host *%myproxy
    ProxyCommand ssh username@proxy.example.com /bin/netcat -w 1 $(echo %h | cut -d%% -f1) 22

Następnie możesz po prostu uruchomić polecenie takie jak ssh user@server-i-want-to-connect-to%myproxy. Musisz mieć zainstalowany na serwerze netcat działający jako serwer proxy.


Jest to prawie dokładnie odpowiedź, którą zamierzałem opublikować (nie mogłem, ponieważ potrzebuję więcej przedstawicieli, aby opublikować odpowiedź przed upływem 8 godzin), ale dodałbym „% p” percent_replace zamiast zakodowanego portu 22 do polecenia netcat. Pozwala to określić dowolny numer portu, z którym należy się połączyć. No i użyłem sed zamiast cięcia.
sleblanc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.