Я могу подключиться из дома к серверу на работе (server A
) через ssh-сервер, подключенный к Интернету.
Мне нужно выполнить команду на сервере в другом офисе (server C
), который не доступен напрямую с server A
Однако существует промежуточный сервер (server B
), к которому server A
может получить доступ, и с которого server C
доступен.
+------+ +----------+ +----------+ +----------+
| home |---| server A |---| server B |---| server C |
+------+ +----------+ +----------+ +----------+
Я знаю, что могу запустить команду на удаленном сервере с помощью ssh следующим образом:
ssh hostname command
Поэтому я попытался объединить несколько команд ssh
ssh server_A ssh server_B ssh server_C command
Однако я получаю ошибку:
ssh: Could not resolve hostname server_B: Name or service not known
Это говорит о том, что поиск DNS происходит локально, а не на удаленном сервере.
Замечания:
Я попытался связать несколько команд ssh вместе, используя хосты, которые может разрешить мой локальный сервер DNS, и это сработало, что говорит о том, что если я смогу решить проблему поиска DNS, я смогу достичь того, чего хочу.
Вопрос:
Как я могу связать несколько команд ssh вместе, но заставить поиск имени происходить только на удаленном сервере, на котором должна быть запущена следующая команда?