SSH przez SOCKS Proxy? (klient = OpenSSH OS X)


11

Nie jestem pewien, czy to pytanie najlepiej pasuje tutaj na ServerFault czy na SuperUser. Myśląc o tym logicznie, myślę, że jest to pytanie sysadmin, więc umieszczam to tutaj, a jeśli mody myślą, że powinien się ruszyć, przepraszam za zgadywanie!

W każdym razie - mam serwer poza witryną i utknąłem na prywatnym adresie IP bez dostępu do sieci, z wyjątkiem proxy HTTP lub proxy SOCKS 4/5. Korzystam z systemu OS X i chciałbym, aby polecenie ssh z terminala w jakiś sposób działało przez jeden z tych dwóch serwerów proxy w celu uzyskania dostępu do zdalnego serwera. Port SSH na zdalnym serwerze jest niestandardowy, choć wątpię, czy to znacznie zmieni.

Odpowiedzi:


5

Wiem, że to starożytny post, ale myślę, że ta odpowiedź nadal będzie pomocna:

Możesz bardzo łatwo to zrobić za pośrednictwem serwera proxy SOCKS z NetCat (nc). W ~ / .ssh / config dodajesz tylko dwie linie, jedną, która określa hosty, które chcesz proxy, oraz linię, która mówi, jak połączyć się za pomocą nc. Tak jak:

~ / .ssh / config: (testowany na OSX, powinien również działać na Linuksie)

Host 10.*
    ProxyCommand nc -X 5 -x PROXY_HOST:1080 %h %p

Zamień „PROXY_HOST” na właściwy dla swojej konfiguracji.

Powoduje to, że ssh zamiast bezpośrednio otwierać połączenie TCP z hostem docelowym (w tym przypadku wszystko, co zaczyna się od „10.” - może to być adres IP lub nazwa hosta), uruchom polecenie „nc” z określonymi opcjami, aby faktycznie nawiąż połączenie TCP, a SSH zajmie się resztą. Bardzo przydatny.

„5” to wersja SOCKS, „1080” to port proxy, „% h” ​​SSH zastępuje hostem wpisanym w wierszu poleceń, a „% p” SSH zastępuje portem z wiersza poleceń (lub domyślnym 22).


7

Tak, można to zrobić. Zobacz tę stronę jako jeden przykład.

Zasadniczo używasz lokalnego ~/.ssh/configpliku (lub /etc/ssh/ssh_configjeśli potrzebujesz, aby obejmował cały system), aby określić ProxyCommanddyrektywę dla hostów, do których musisz przejść przez serwer proxy, aby się do niego dostać.

Możesz także użyć nc(dostarczanego z OS X) zamiast oprogramowania wymienionego w tej witrynie.

Dodatkowe informacje można znaleźć na stronach ssh_config(5)i nc(1)man.


1
Niestety strona, do której prowadzi link, jest nieaktualna, a link do poprawionej wersji pliku binarnego jest martwy - błąd 404.
Bart B

1
Och, jakie to zawstydzające - znalazłem link do działającego polecenia proxy, które nadal kompiluje się w systemie OS X 10.7 Lion i nadal działa, NA MOIM WŁASNYM BLOGU! W mojej obronie stanowisko ma 6 lat, ale nadal. Instrukcje robocze tutaj: bartbusschots.ie/blog/?p=184
Bart B

2
@BartB „Wszystko, co napisałeś ponad tydzień temu, mogło równie dobrze zostać napisane przez kogoś innego”. - To aksjomat programistyczny, ale dotyczy to również administratorów i blogerów.
voretaq7

3

Trochę późno, ale pamiętaj, że możesz użyć innych odpowiedzi tutaj w samym poleceniu SSH z flagą -o. Było to dla mnie przydatne, ponieważ mogłem lub nie potrzebować używać proxy (w zależności od tego, w którym biurze jestem), więc tak naprawdę nie chcę edytować plików konfiguracyjnych ssh.

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" myuser@cantaccessthiswithoutproxy.com
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.