Creo que te gustará rsyncrypto .
Use rsyncrypto para encriptar archivos de su directorio de texto sin formato a su directorio encriptado, y descifre archivos de su directorio encriptado y su directorio de texto sin formato, usando las claves que mantiene localmente.
Use rsync para sincronizar entre su directorio encriptado y el host remoto.
La implementación de rsyncrypto que puede descargar ahora desde Sourceforge no solo maneja los cambios en bytes, sino también las inserciones y eliminaciones.
Con rsyncrypto, todas las claves de cifrado nunca salen de la computadora local.
"El servidor remoto preferiblemente ni siquiera debe conocer la estructura del directorio"
En ese caso, querrás usar el --name-encrypt=map
opción. Eso hace que cada nombre de archivo cifrado sea una cadena aleatoria de caracteres y, de forma predeterminada, todos los nombres de archivos destrozados se almacenan en un solo directorio. Los nombres verdaderos de los archivos y las carpetas se almacenan en el archivo (encriptado) llamado "mapa de archivos".
Relacionado: "¿Existe un sistema de control de versiones encriptado?"