SSH туннели
SSH туннели
SSH часто приходит к нам на выручку, когда нужно подключится к какому-то удаленному серверу и что-то там поправить. Однако помимо своего самого частого использования SSH предлагает достаточно обширные возможности. Одна из них - это SSH-туннели. Суть заключается в том, что поднимая между двумя машина в сети SSH-подключение, у вас есть возможность пробросить порты этих машин в пряму и обратную сторону. Разберем подробнее где это может пригодиться и как это сделать.
Для простоты дальнейших рассуждений мы определим следующие термины:
- Удаленная машина (remote_host) - это машина, к которой мы подключаемся по SSH. Все, что относится к ней, будет носить префикс
remote_ - Локальная машина (local_host) - это наша локальная машина, с которой мы осуществляем SSH-подключение. Все, что относится к ней, будет носить префикс
local_
Туннель с удаленной машины на локальную (-L)
Примером ситуации, где такой туннель может пригодится, может служить необходимость получить локально доступ к узлу, который доступен только с удаленной машины, к которой мы подключаемся по SSH. Предположим, что это некоторый веб-сервис, который для удаленной машины доступен по адресу 10.10.0.10:8080. Мы же хотим, чтобы этот веб-сервис был доступен на локальной машине на порту 38080. Тогда команда проброса туннеля будет выглядеть следующим образом:
ssh -L 38080:10.10.0.10:8080 remote_user@remote_host
Туннель с локальной машины на удаленную (-R)
Обратная ситуация. Предположим, нам нужно опубликовать локальный веб-сервис, располагающийся на порту 5000 локальной машины на порту 80 удаленной машины. Тогда команда проброса туннеля будет выглядеть следующим образом:
ssh -R 80:127.0.0.1:5000 remote_user@remote_host