Eu acho que você vai gostar do rsyncrypto .
Use rsyncrypto para criptografar arquivos do diretório de texto sem formatação para o diretório criptografado e descriptografar arquivos do diretório criptografado e do diretório de texto sem formatação, usando as chaves que você mantém localmente.
Use rsync para sincronizar entre o diretório criptografado e o host remoto.
A implementação rsyncrypto, que você pode baixar agora do Sourceforge, não apenas lida com alterações em bytes, mas também inserções e exclusões.
Com o rsyncrypto, todas as chaves de criptografia nunca saem do computador local.
"O servidor remoto preferencialmente nem deve conhecer a estrutura de diretórios"
Nesse caso, você desejará usar a --name-encrypt=map
opção Isso faz com que cada nome de arquivo criptografado seja uma sequência aleatória de caracteres e, por padrão, todos os nomes de arquivos desconfigurados são armazenados em um único diretório. Os nomes verdadeiros dos arquivos e das pastas são armazenados no arquivo (criptografado) denominado "mapa de arquivos".
Relacionado: "Existe um sistema de controle de versão criptografado?"