Если ssh
на jumpstation поддерживает аргумент '-W', вы можете связать его:
В ~ / .ssh / config
:
Host 10.144.108.127
ProxyCommand ssh -q user@jumpstation -W %h:%p
И в командной строке портативного компьютера:
ssh -R PORT_WITH_INTERNET:localhost:PORT_WITH_INTERNET user@10.144.108.127
Вам также необходимо запустить прокси на вашем портативном компьютере и установить соответствующие настройки прокси на удаленном компьютере.
Даже если jumpstation ssh не поддерживает аргумент '-W' (в чем я сомневаюсь), это можно обойти, вызвав netcat
на jumpstation или даже открыв / dev / tcp /. ..
и пара кота
(если там у вас есть bash).
Используйте sshuttle
, который:
Прозрачный прокси-сервер, работающий как VPN для бедняков. Пересылка по ssh. Не требует админа. Работает с Linux и MacOS. Поддерживает DNS-туннелирование.
Пока на промежуточном компьютере установлен Python sshuttle
будет подключаться, передавать себя и настраивать локальный компьютер для пересылки всего трафика (или выбранного трафика) по SSH-соединению.
Другой приятной особенностью является то, что он работает с TCP, а не против него, поэтому вы получаете правильную производительность через соединение - обычные туннели SSH, как правило, плохо масштабируются из-за отсутствия потери пакетов.
Вы можете использовать это напрямую, чтобы делать то, что хотите:
sudo sshuttle --dns -r user@jump 0/0
Это будет подключаться через SSH к user @ jump и перенаправлять весь трафик и все запросы DNS через это соединение. Вам не нужно выполнять какие-либо настройки на удаленном компьютере, и вам нужны только права администратора на вашем локальном компьютере (для настройки правил фильтрации пакетов).
sshuttle
упакован для некоторых дистрибутивов, но его очень просто установить локально из репозитория git с помощью стандартного процесса установки Python setup.py
. Это также в PyPI, если вы его используете.