add gpg-key-backup script

This commit is contained in:
Travis Shears 2025-10-08 10:13:32 +02:00
parent e5a58e8075
commit 09d76019e2

38
bin/gpg-key-backup.sh Executable file
View file

@ -0,0 +1,38 @@
#!/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/'"