GPG secured Backups

 

There are some situations in which it becomes useful to store important and crucial data in non-trustworthy environments. One example can be an off-site backup at an external hoster where full control over the infrastructure can not be maintained. Then, encrypting your files comes in handy so that in an emergency the data can be restored and only the according key has to stay save.

Key creation

A new public/private key pair is generated by running

gpg --gen-key

Just follow the prompts. Depending on the use case and level of later automation it can be useful to skip the definition of a passphrase. Keep the key ID in mind for the next step (you can display it again with `gpg --list-keys`). The keys are now stored in the user's home directory in `~/.gnupg/secring.gpg` and `~/.gnupg/pubring.gpg`. Remember to keep these files save.

Encryption of data

Now, `tar` is used to archive directories and files and pipe the resulting package into `gpg`:

tar -c {dirs_and_files_to_backup} | gpg -r {gpg_key_id} -e -o backup.tar.gpg

The resulting `backup.tar.gpg` can savely be stored at some non-confidential place. If your data can be compressed, it may be useful to replace `tar -c` by `tar -cz` in order to compress the data during archiving.

Decryption of data

To retrieve your data from the encrypted archives, the previous process is basically reversed:

gpg -d backup.tar.gpg | tar xf -

If you compressed your data in the encryption process you need to replace `tar xf` by `tar xzf`.

Leave a Comment