SecureEncryptedRemoteVolumeHowTo

Introduction

Ubuntu allows you to use virtually any inexpensive hosting account as a secure remote encrypted volume. When mounted as explained below, the remote encrypted volume will look and feel like a normal directory, but your computer will transparently encrypt all files on-the-fly when you save them (and transparently decrypt when you open them), and files will be stored, not locally, but in the remote host, using SSH as a secure transport mechanism.

You can use this remote directory for securely sharing files between different computers, or as secure remote backup storage, etc. The only requirement is that you need SSH access to the remote host.

Installation and Setup

1. Install the necessary packages and their dependencies:

sudo apt-get install sshfs encfs

2. Ensure the fuse module gets loaded after every boot by adding it to /etc/modules

echo "fuse" | sudo tee -a /etc/modules

3. Add yourself to the "fuse" group. Only root and members of group "fuse" can use SSHFS

sudo addgroup $(whoami) fuse

3a. Make sure that you're actually a member of the group. Activation may require an X restart.

groups

4. Create the necessary directories in your home folder to mount/unmount the remote volume:

mkdir ~/.remote-secure-volume  ## note the '.'
mkdir ~/remote-encrypted-volume

Mounting

Mounting is a two-step process. First you mount the remote volume using SSHFS (enter your ssh password when prompted), and then you mount the SSHFS-mounted volume as an encrypted volume using Encfs.

Note: the first time you run Encfs, it will ask you to choose a mode -- choose standard mode -- and will also ask you to enter a new encryption password -- enter it twice.

Here are the two commands you need to run:

sshfs your-ssh-username@your-web-host.com:remote-directory ~/.remote-secure-volume
encfs ~/.remote-secure-volume $HOME/remote-encrypted-volume

The first command mounts the remote volume over SSH; the second command mounts it as an encrypted volume. (Obviously, you need to substitute "your-ssh-username", "your-web-host.com", and "remote-directory" as appropriate.) You can also copy these two commands into a shell script if you would like to mount the remote volume with a single command.

Using

When mounted as explained above, the directory 'remote-encrypted-volume' in your home folder can be used as a regular directory. The difference: all files are encrypted on-the-fly before saving, and are saved, not locally, but to a remote host, using SSH as the transport mechanism.

Unmounting

fusermount -u ~/remote-encrypted-volume
fusermount -u ~/.remote-secure-volume

These two commands can also be copied into a shell script to automate the unmounting.

IMPORTANT:

As is usual with free advice, this Howto is posted here in good faith, but no representation or warranty, express or implied, is made as to its accuracy, completeness or adequacy, and it should not be relied on as such. (In plain language: if you run into trouble, you are on your own...)