Age Encryption
Appearance
Generate Key Pair
age-keygen -pq -o ~/age-260801.key # chmod 600 age-260801.key already included age-keygen -y ~/age-260801.key > ~/age-260801.pub
Encrypt
# tar.gz tar czf - mydir | age -R ~/age-260801.pub -o mydir.tar.gz.age-260801 # tar.xz tar cf - mydir | xz -6 | age -R ~/age-260801.pub -o mydir.tar.xz.age-260801 # or raise to -9 or even -9e if size matters more than time
Encrypt with filtered file list
FILELIST=$(mktemp) trap 'rm -f "$FILELIST"' EXIT find . \ \( -path "./asdf" \ -o -path "*/.git" \ -o -path "*/node_modules" \ \) -prune -o \ -type f \ ! -name ".DS_Store" \ ! -name "*.pyc" \ ! -name "pnpm-lock.yaml" \ -print >"$FILELIST" tar -cf - -T "$FILELIST" | xz -6 | age -R ~/age-260801.pub -o mydir.tar.xz.age-260801
Decrypt
# tar.gz age -d -i ~/age-260801.key mydir.tar.gz.age-260801 | tar xzf - # tar.xz age -d -i ~/age-260801.key mydir.tar.xz.age-260801 | xz -d | tar xf -
Shell Functions for reuse
age_pack() { tar cf - "$1" | xz -6 | age -R ~/age-260801.pub -o "${1%/}.tar.xz.age-260801"; }
age_unpack() { age -d -i ~/age-260801.key "$1" | xz -d | tar xf -; }