Los archivos de Ubuntu se enviaron correctamente, pero desde Windows recibí el error "error en el flujo de datos del protocolo rsync (código 12)"

Los archivos de Ubuntu se enviaron correctamente, pero desde Windows recibí el error "error en el flujo de datos del protocolo rsync (código 12)"

Si en breve, cuando envío mis archivos a VPS desde Ubuntu PC mediante Rsync, todo va bien, sin embargo, si hago lo mismo desde Windows, aparece el error

rsync: conexión cerrada inesperadamente (0 bytes recibidos hasta ahora)

[Receptor] Error de rsync: error en el flujo de datos del protocolo rsync (código 12) en io.c(235) [Receptor=3.1.3]

Aunque a diferencia de Linux, Rsync no está instalado de forma predeterminada para Windows, lo instalé en mi PC con Windows.

ingrese la descripción de la imagen aquí

Datos ambientales

  • PC local n.º 1: Windows 10
  • PC local n.º 2: Ubuntu 20.04.5
  • VPS: Ubuntu 20.04

Preparativos

He inicializado el VPS con Ubuntu claro. Para eliminar algunas variables de las ecuaciones, he hecho algunas cosas que no deberían hacerse en un VPS real (no experimental como en mi caso) por motivos de seguridad.

  • Enviaré los datos usando la cuenta raíz.
  • No usaré la SLL

Además, he creado el/var/www/ejemplo.comdirectorio en VPS para evitar el error de no poder sincronizar los datos porque no se ha creado el directorio de destino.

Objetivo

ingrese la descripción de la imagen aquí

Presentar el contenido de06-ProducciónConstruccióndirectorio al VPS.

Flujo del experimento

En la terminal de Windows, ingrese

rsync -azve ssh --progress 06-ProductionBuild [email protected]:/var/www/example.com

Se ha solicitado la contraseña. Después de ingresar la contraseña obtuve:

rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.3]

ingrese la descripción de la imagen aquí

Si ingresé la contraseña incorrecta, el error fue Permission denied, please try again.

Ahora el mismo comando desde Ubuntu PC:

ingrese la descripción de la imagen aquí

Todo estuvo bien.

Por favor dame algunas pistas.


Probé desde WSL, estuvo bien. Parece que algo anda malRsync desde Windows.

ingrese la descripción de la imagen aquí

Respuesta1

Aparentemente, esto se debe a que estaría utilizando el sshprograma "sistema" (compilación nativa de OpenSSH de Microsoft) cuando especifica solo -e ssh. (Más precisamente, probablemente se deba a que la precedencia de RUTA del bindirectorio de instalación de (cw)rsync es menor que la otra ruta en cuestión).

En mi prueba, la solución más sencilla es especificar -e /bin/ssh, en su lugar, cuál hará que rsyncse utilice el (cygwin) sshque viene con él. (La "magia" de cygwin debería resolver automáticamente la raíz del camino por usted, chocolateado o no).

El crédito (de descubrir la causa) va al comentario.aquí, aunque el enfoque que allí se ofrece parece innecesariamente torpe. (Bueno, a menos que tenga motivos para utilizar la sshversión de Microsoft).

EDITAR: en realidad, la explicación dada en el enlace correcto no me parece exactamente cierta. En mi prueba, el "sistema" ssh se usaría known_hostsen una ubicación diferente, pero también me solicita que agregue el servidor a la lista cuando intento conectarme con él por primera vez y creé el suyo propio known_hostscon éxito. Tampoco me preguntó en el intento posterior, por lo que aparentemente PUEDE encontrar el suyo propio para volver a leer. Por lo tanto, no tengo idea de cómo le ayudó su sugerencia y, de todos modos, especificar la opción/ruta no funciona para mí.

información relacionada