Actualmente estoy lejos de mi LAN y necesito hacer una copia de seguridad de mi computadora portátil. Tengo una copia algo reciente de mi computadora portátil en mi servidor y generalmente hago una copia de seguridad de la computadora portátil usando rsync. Ahora deseo hacer eso, pero fuera de mi LAN.
En resumen, quiero enviar datos de A a C a través de B, donde A es mi computadora portátil, B mi enrutador y C mi servidor.
Encontré este comando: A$ scp -oProxyCommand="ssh B nc %h %p" thefile C:destination
que funciona bien para transferir archivos a través de scp, pero como ya tengo la mayoría de los datos en mi servidor, deseo usar rsync para sincronizar solo el delta.
He intentado:, A$ rsync file -e 'ssh B ssh' C
y eso funciona hasta donde se me solicita que proporcione la contraseña para el usuario: C. Sin embargo, cuando ingreso la contraseña no sucede nada. El enrutador ejecuta Tomato v1.28 y no puedo configurarlo para utilizar un archivo de configuración ssh que le permita iniciar sesión en C con una contraseña.
¿Alguna idea de cómo hacer que esto funcione?
ProxyCommand
en el archivo de configuración. Rsync debería recoger eso.Respuestas:
Esta pregunta se responde esencialmente en otro lugar, incluido aquí para scp y aquí para rsync . Como esta última incluye mi respuesta, pero no se aceptó ninguna respuesta, la repetiré aquí.
Como notó, puede usar
rsync
la-e | --rsh
opción, pero será un poco más complicado:O, si su versión de
ssh
es lo suficientemente nueva (OpenSSH> = v7.3), puede usar la opción-J
(ProxyJump
)Tenga en cuenta que estoy usando
-A
(reenvío de agente), pero también debería funcionar con autenticación de contraseña si no usa claves y, por supuesto, puede reemplazarproxy
conB
ydest
conC
en su ejemplo.Si por casualidad no tiene una
ssh
versión lo suficientemente nueva (> = 5.3, IIRC), puede usar ennetcat
lugar de la-W
opción parassh
:Finalmente, como ya se señaló en los comentarios, puede colocarlo
ProxyCommand
en su$HOME/.ssh/config
archivo para que no tenga que tener una línea de comando tan complicada. Específicamente, agregue algo como esto:O, usando
ProxyJump
para OpenSSH> = v 7.3:Entonces deberías poder hacer:
fuente