remote - rsync a través del túnel ssh
rsync ssh key (3)
Debe conectarse al puerto 22 de clusternode, por lo que el túnel debería verse como
ssh -L localhost:8000:clusternode:22 user@bridge
Quiero sincronizar con un nodo de clúster al que suelo conectar pasando por otro sistema:
Digamos que me conecto primero a
ssh user@bridge
y de allí a
ssh user@clusternode
Ahora quiero sincronizar desde mi estación de trabajo a clusternode. Yo hago lo siguiente:
Abro un túnel ssh
ssh -L8000:clusternode:8000 user@bridge
I rsync desde mi estación de trabajo a clusternode
rsync -e "ssh -p8000" source user@localhost:destination
y no funciona, me sale
ssh_exchange_identification: Connection closed by remote host
Por que no funciona? ¿Que tengo que hacer?
He encontrado mucha información aquí:
http://toddharris.net/blog/2005/10/23/rsyncing-through-an-ssh-tunnel/
Creo que tengo que entender que mi problema es la segunda autenticación entre el puente y el destino, así que cambié al método 2, que tampoco es muy elegante, pero funciona. Me gustaría probar el método 3, pero no sé cómo configurar un daemon rsync
Esto es lo que funcionó para mí.
Ejecuto un comando en segundo plano para hacer un túnel al host remoto:
ssh -N -L 2222:remote.example.com:22 bridge.example.com&
entonces rsync al localhost así:
rsync -auve "ssh -p 2222" . me@localhost:/some/path
Prueba este one-liner:
rsync -av -e "ssh -A root@proxy ssh" ./src root@target:/dst