scripts/bin/gpg-key-backup.sh

38 lines
946 B
Bash
Executable file

#!/bin/sh
set -e
# Create a temporary working directory
WORK_DIR=$(mktemp -d -t gpg-backup-XXXXXXXXXX)
trap 'rm -rf "$WORK_DIR"' EXIT
cd "$WORK_DIR"
BACKUP_NAME="$(date +%Y_%m_%d)-keys-backup"
echo Exporting Secret Keys
gpg --export-secret-keys --armor > "$WORK_DIR/secret-keys.asc"
echo Exporting Public Keys
gpg --export --armor > "$WORK_DIR/public-keys.asc"
echo Exporting Trust DB
gpg --export-ownertrust > "$WORK_DIR/trust_db.txt"
echo Files created:
ls -la "$WORK_DIR"
echo Creating backup archive
tar czfv "/tmp/${BACKUP_NAME}.tar.gz" "$WORK_DIR"
echo Created "/tmp/${BACKUP_NAME}.tar.gz"
echo Encrypting backup archive
# AES256 is apparently used by NAS..
gpg --symmetric --cipher-algo AES256 "/tmp/${BACKUP_NAME}.tar.gz"
echo Cleaning up unencrypted file
rm "/tmp/${BACKUP_NAME}.tar.gz"
echo "Backup created in /tmp/${BACKUP_NAME}.tar.gz.gpg"
echo "If you are connected to NAS run 'cp /tmp/20.. /Volumes/travis/gpg_keys/'"