Networks

Как зайти по SSH на сервер через другой сервер

Предположим, что IP-адрес вашей машины, с которой вам нужно зайти на server1 по SSH заблокирован на файрволе данного сервера.

Однако, есть ещё один server2, на который вы можете зайти по SSH, а уже с него зайти на server1. Вы бы так и сделали, но всё осложняется тем, что доступ осуществляется по ключу только с вашей машины, без ввода пароля и вы просто не знаете пароль.

Проблема

В этом случае, даже если вы находитесь на server1 вы не сможете зайти на server2 обычным образом, ведь у вас потребует пароль! Но существует способ как можно решить данную проблему.

Решение

Выполните на своей машине команду:

ssh -L *:9999:xxx.xxx.xxx.xxx:22 -l root server2
  • 9999 – это порт, через который будет осуществляться перенаправление работы SSH (необходимо, чтобы данный порт не был занят другими программами и не должен быть закрыт на вашей машине на файрволе).
  • xxx.xxx.xxx.xxx это IP-адрес server1 и порт 22, по которому server1 должен быть доступен server2.
  • server2 – это соответственно имя или IP-адрес сервера2. После ввода этой команды у вас запросит пароль на server2 (или просто произойдёт вход на server2, если у вас настроен доступ по ssh-ключу).

Теперь для доступа к сервер1 введите команду:

ssh -l user 127.0.0.1 -p 9999
  • user – это имя пользователя, с которым вы должны зайти на server1.

При выполнении этой команды, сперва произойдёт перенаправление запроса на локальную машину на порт 9999, а затем оттуда запрос пройдёт на server2 и уже выполнится server2.

В итоге вы получите доступ к server1 с вашей локальной машины транзитом через server2.