How do I do Multihop SCP transfers?
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 the 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.