Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have the following setup:

Windows rsync -> ssh -> rsync Linux

Each user has a different ssh key so only the user and the Linux admin can access the user's files on the server. The files are not encrypted on the server with that method.

Now, I would like to build on top of that solution and make sure only the user himself can access his files and not the admin (root) of the Linux server.

At that point, is the only solution: encryption on the client then push to server, how can you use rsync when the files are already encrypted on the client to start with.

Is there a way to encrypt a volume on the server or a folder with that folder only accessible by the user (using some key).

Any suggestions ?


share|improve this question

You are looking for duplicity.

Duplicity creates an encrypted, compressed backup of the input data on the client and transfers it via librsync / ssh. It creates incremental backups, so that it can still transfer the delta with minimum bandwidth consumption despite using encryption. The nice side effect is that you can do daily backups and still access the version of n days ago.

share|improve this answer
duplicity is for POSIX system, not for windows. However, it seems to work fine along with few Cygwin DLLs or under Cygwin. I need to try it out and see how it behaves on Windows. – Laurent Luce Aug 26 '09 at 20:06

"Now, I would like to build on top of that solution and make sure only the user himself can access his files and not the admin (root) of the Linux server."

I would think that is going to be very difficult, if not pretty much impossible. My logic is, that if the decryption takes place on the server, the root user can probably get the password or key. Reading what you wrote, you may have already considered this, but just want to make clear.

For instance, the root user can capture decrypted ssh passwords when they log in very easily with strace, see this article for how.

I think what you want is some sort of end-to-end encryption, where no decryption takes place on the server. GnuPG is a good tool for this.

share|improve this answer
Hmmm.. I think you already knew this, read your question to fast. Duplicity sounds like a good solution for implementing the push method. – Kyle Brandt Aug 26 '09 at 11:31

You need to be careful with implementing a solution that you have visibility into. You can place yourself in a bad legal place if you are allowing members of the general public and/or your company to encrypt data having no way to store it.

If these are your employees, you should be issuing the keys to them and escrowing them. If this is the public, you need to talk to an attorney.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.