La respuesta de ProxyCommand de Grawity funcionó para mí, pero como estoy menos familiarizado con SSH, me llevó un poco de experimentación. Pensé que simplemente explicaría la respuesta de Grawity con más detalle para ayudar a cualquier otro novato a SSH como yo. Aquí están las definiciones para una notación más explícita:
Máquina A: la máquina en la que estás
Servidor B: userB@ip.address.for.B (el servidor principal o el servidor intermedio)
Servidor C: userC@ip.address.for.C (el servidor remoto al que desea copiar)
ProxyCommnad
A$ scp -oProxyCommand="ssh -W %h:%p userB@ip.address.for.B" thefile userC@ip.address.for.C:destination
Ejemplo concreto
Entonces, para un ejemplo concreto, supongamos que tiene acceso a un servidor con IP 0.0.1.2
con una cuenta de usuario llamada bar
(Servidor C). Pero para llegar a él, primero debe iniciar sesión en un servidor con IP 0.0.1.1
con una cuenta de usuario llamada foo
(Servidor B). Ahora desea copiar el archivo baz.txt
ubicado en su equipo actual (la máquina A) al servidor 0.0.1.2
's /home/bar/
directorio. Para usar el ProxyCommand anterior para este ejemplo, debe ejecutar lo siguiente:
A$ scp -oProxyCommand="ssh -W %h:%p foo@0.0.1.1" baz.txt bar@0.0.1.2:/home/bar/
También puede copiar fácilmente un archivo desde el Servidor C cambiando el orden del archivo y el destino. Entonces, por ejemplo, si baz.txt
ya estaba en el servidor 0.0.1.2
ubicado en, /home/bar/
entonces podría copiarlo a su máquina usando:
A$ scp -oProxyCommand="ssh -W %h:%p foo@0.0.1.1" bar@0.0.1.2:/home/bar/baz.txt /destination/path/on/A
Espero que esto ayude a las personas que necesitan explicarse un poco más que otros.
A$ rsync <options> -e 'ssh B ssh' source C:destination