Хорошо, у меня есть веб-сервер, назовем его Сервер A, который предоставляет услуги через HTTPS. И у меня есть сервер шлюза SSH, назовем его Сервер B.
Из-за правил брандмауэра я не могу получить доступ к веб-службе сервера A со своего настольного компьютера с Linux. Поэтому для просмотра веб-службы я должен использовать SSH с перенаправлением X на сервер B и запустить firefox через туннель SSH. Сервер B может получить доступ к веб-службе сервера A, и поэтому он работает.
Мне интересно, можно ли создать туннель SSH между моим ПК и сервером B, который позволил бы мне получить доступ к службе на сервере A с помощью моего настольного веб-браузера, а не запускать firefox через туннель SSH.
Да, это возможно:
ssh -L 8443:serverA:443 -Nf [user@]<serverB>
Это позволит вам указать браузеру рабочего стола на порт 8443 и отправить его на порт 443 (порт HTTPS) на вашем сервере A. -Nf
запустит сеанс в фоновом режиме и немедленно выйдет обратно на рабочий стол, не устанавливая фактический сеанс оболочки на сервере B.
Вам даже не требуется SSH Tunneling
для доступа к web service
в Server A
. Ты можешь использовать Dynamic Port Forwarding
ssh -N -D 9000 user@server_b
и настройте свой веб-браузер для использования прокси-сервера SOCKS 127.0.0.1
и порт 9000