Isso funciona para mim:
rsync -avzhP -e "ssh -p portB -A user1@B ssh" user2@C:somedir/ localdir/
Como referência, li esta resposta para uma pergunta semelhante:
Eu tenho computadores A, B e C. Cada um deles tem o ssh habilitado e eu posso usar rsync
.
B tem acesso ssh público, então A pode conectar B e C pode se comunicar porque eles estão em uma vpn e A não faz parte dela.
Eu gostaria de copiar alguns arquivos (e criar um cronjob para isso) de C para A.
O que é uma boa maneira de fazer isso?
ATUALIZAÇÃO:
Eu era capaz de ssh para C via B, como foi explicado nas respostas relacionadas que você me sugere, mas eu não consegui rsync através do servidor B.
Considere que B está escutando ssh não na porta 22.
Isso funciona para mim:
rsync -avzhP -e "ssh -p portB -A user1@B ssh" user2@C:somedir/ localdir/
Como referência, li esta resposta para uma pergunta semelhante:
Se o host A puder ssh
no host B e o host B puder ssh
no host C, você poderá configurar sua configuração de ssh
client no host A para proxy de B a C. Você também pode informar rsync
para usar ssh
como seu protocolo de transferência ( -e ssh
). Combine essas duas coisas e você pode ssh
ou rsync
do host A para C por meio de B, mesmo em um trabalho cron
.