У меня есть 3 компьютера / сервера, давайте назовем их как компьютер A, компьютер B и компьютер C.
- Компьютер A имеет доступ через
ssh
к компьютеру B. - Только компьютер B имеет доступ через
ssh
к компьютеру C. - Компьютер A не имеет доступа к компьютеру C напрямую.
Итак, я хочу rsync
каталоги с компьютера A на компьютер C, используя компьютер B(поскольку только компьютер B имеет доступ через ssh
к компьютеру C). Я хочу использовать rsync
простым способом, например так:
rsync -options /path_to_local IpComputerC:/path_to_remote
Я думаю о ssh
туннеле, но я не знаю, нужно ли мне перенаправлять локальный порт или удаленный порт, или мне нужно сделать два туннеля: один от A до B и другой от B до C?
Какие-либо предложения?? Я был бы очень благодарен.
** ОБНОВЛЕНИЕ: я бросаю это !! Я создал туннель ssh с переадресацией локальных портов, что означает, что я использовал локальный порт с машины A для подключения к удаленному порту на машине C через машину B. Синтаксис команды:
ssh -f -N -L local_port_machineA:ip_machineC:remoteport_machineC user_machineB@ip_machineB
В моем случае remoteport_machineC будет портом 22, потому что я хочу rsync каталоги через ssh.
После этого мы можем выполнить команду rsync с машины A следующим образом:
rsync -avz -e "ssh -p local_port" /source_directory username_machineC@localhost:/target_directory
Это все. Кроме того, вы можете добавить дополнительные параметры в части внутри кавычек, такие как ключи или файлы и т.д. **