Я могу ssh к удаленной системе серверов через сервер входа в систему (ssh user@lxplus.sern.ch). С сервера входа в систему я могу ssh на конкретный сервер (ssh user@supercool). Я не могу получить доступ к конкретному серверу напрямую (ssh user@supercool.sern.ch). Как я могу запустить локальный rsync, чтобы получить каталог с этого конкретного сервера? Я не могу выполнить rsync с конкретного сервера на мой локальный компьютер, потому что мой локальный компьютер не имеет общедоступного IP-адреса.

1 ответ1

0

Итак, ваша установка такова:

Local Machine --> Intermediate Server --> Remote Server

Если вы можете запустить команду rsync на удаленном сервере, а на вашем локальном компьютере работает sshd, вы можете сделать это:

Войдите на промежуточный сервер с помощью следующей команды ssh

ssh user@<intermediate server> -R 1024:localhost:22

Это создаст обратный туннель SSH. Любые соединения SSH на промежуточном сервере через порт 1024 будут перенаправлены обратно на ваш локальный компьютер.

В этот момент вы будете авторизованы на промежуточном сервере. Затем вам нужно расширить туннель до удаленного сервера. На промежуточном сервере запустите:

ssh user@<remote server> -R 1024:localhost:1024

Теперь любое соединение SSH через порт 1024 на удаленном сервере будет возвращаться к промежуточному серверу через порт 1024, который затем будет туннелироваться обратно на ваш локальный компьютер. Уф!

Теперь нам нужно обернуть это в rsync. Rsync имеет опцию удаленной оболочки (-e), которую вы можете использовать для указания опций ssh. Таким образом, на удаленном сервере вы можете запустить (это немного догадка из прошлого опыта, возможно, потребуется некоторая настройка):

rysnc -<whatver rsync options you want> -e "ssh -p 1024" <source directory> <local machine user>@localhost

Не забывайте всегда запускать команду rsync с параметром --dry-run, чтобы убедиться, что она выполняет то, что вы ожидаете (в сочетании с различными уровнями многословия -v, -vv или -i или -ii в зависимости от используемых версий rsync.).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .