Reference:
How do I do Multihop SCP transfers?
https://stackoverflow.com/questions/732039/rsyncing-files-between-two-remote-servers-get-errors-stating-rsync-command-not
http://ubuntuforums.org/showthread.php?t=748431
I have a situation that I really hope there is a solution for, although I've found nothing yet over the last couple of hours.
I have two servers that cannot talk to each other that I need to transfer data between. That's a fairly common situation that is easily overcome with some scp trickery. Here is the gotcha.
One server is accessed over a VPN, vpnserver
the other server targetserver
is accessed via a jump host jumphostserver
.
I have ProxyCommand
setup to allow me to proxy connections through jumphostserver
to targetserver
and I'm using the SSH Mux stuff (ControlMaster
/ControlPersist
/ControlPath
) to allow connection sharing for all connections that are open.
My local machine can properly scp things between the two servers using the following command:
scp -3 vpnserver:/path/to/file targetserver:/path/to/destination
I can also rsync things directly from vpnserver
to my local machine and from my local machine to targetserver
(using the ssh proxy that goes through jumphostserver
)
What I need to do is make my machine act as an intermediary the way that scp -3
allows it to, but do so using rsync
, so that permissions, ownership, and (more importantly) the ACLs are properly copied to targetserver
.
I had thought about trying to NFS export the filesystem of vpnserver
and targetserver
(re-exported through jumphostserver
), but I don't have control over jumphostserver
, only over vpnserver
and targetserver
.