Eu tenho 3 computadores / servidores, vamos chamá-los como computador A, computador B e computador C.
- O computador A tem acesso via
ssh
ao computador B.
- Apenas o computador B tem acesso via
ssh
ao computador C.
- O computador A não tem acesso ao computador C diretamente.
Então, eu quero rsync
diretórios do computador A para o computador C, usando o computador B (já que somente o computador B tem acesso via ssh
para o computador C). Eu quero usar rsync
de uma maneira simples, assim:
rsync -options /path_to_local IpComputerC:/path_to_remote
Estou pensando em um ssh
tunnel, mas não sei se preciso fazer um encaminhamento de porta local ou um encaminhamento de porta remoto ou se preciso fazer dois túneis: um de A para B e outro de B para C?
Alguma sugestão? Eu ficaria muito grato.
** ATUALIZAÇÃO: Eu sei !! Eu criei um túnel ssh com encaminhamento de porta local, o que significa que eu usei uma porta local da máquina A para conectar com uma porta remota na máquina C através da máquina B. A sintaxe para o comando é:
ssh -f -N -L local_port_machineA:ip_machineC:remoteport_machineC user_machineB@ip_machineB
No meu caso, remoteport_machineC deve ser a porta 22, porque eu quero rsync diretórios através de ssh.
Depois disso, podemos executar o comando rsync da máquina A, desta forma:
rsync -avz -e "ssh -p local_port" /source_directory username_machineC@localhost:/target_directory
Isso é tudo. Além disso, você pode adicionar mais opções na parte dentro das aspas, como chaves ou arquivos, etc. **