Se metti i tuoi backup in cloud senza cifrarli, ti fidi al 100% del provider. Se domani vengono bucati (o richiesti da un tribunale), tutti i tuoi dati vengono letti. Con GPG cifri prima del upload: il cloud archivia solo byte incomprensibili.
1. Installazione
sudo apt install gnupg # Debian/Ubuntu
brew install gnupg # macOS
# Windows: Gpg4win (gpg4win.org)
2. Genera la tua coppia di chiavi
gpg --full-generate-key
# Scegli:
# - RSA and RSA (1)
# - 4096 bits
# - Key valid for: 5 years (o infinita: 0)
# - Nome: Alessandro Barone
# - Email: info@ilbarone.net
# - Passphrase: MOLTO forte (proteggera' la chiave privata)
Genera 2 file in ~/.gnupg/: pubblica (condivisibile) e privata (segreta come oro).
3. Elenca chiavi generate
gpg --list-keys
gpg --list-secret-keys
Prendi nota del Key ID (16 hex chars, es. 1A2B3C4D5E6F7890).
4. Cifrare un file (per te stesso)
gpg --encrypt --recipient info@ilbarone.net backup.tar.gz
# genera backup.tar.gz.gpg (cifrato)
rm backup.tar.gz # elimina l'originale
5. Decifrare
gpg --decrypt backup.tar.gz.gpg > backup.tar.gz
# Ti chiede la passphrase della chiave privata
6. Backup script completo
#!/bin/bash
# /usr/local/bin/backup-encrypted.sh
set -e
DATE=$(date +%Y%m%d-%H%M)
SRC=/home/alessandro/Documenti
DST=/tmp/backup-$DATE.tar.gz
KEY=info@ilbarone.net
CLOUD=gdrive:BackupCifrati/
# 1. Comprimi
tar -czf $DST -C $SRC .
# 2. Cifra
gpg --encrypt --recipient $KEY $DST
# 3. Verifica cifratura ok
gpg --decrypt $DST.gpg >/dev/null && echo "OK cifratura verificata"
# 4. Upload su cloud (rclone gia' configurato)
rclone copy $DST.gpg $CLOUD
# 5. Pulizia locale
rm $DST $DST.gpg
echo "Backup cifrato uploadato: $DATE"
Chmod 755, poi crontab:
0 3 * * * /usr/local/bin/backup-encrypted.sh >> /var/log/backup.log 2>&1
7. Batch: cifrare tutti i file di una cartella
for f in *.pdf; do
gpg --encrypt --recipient info@ilbarone.net "$f" && rm "$f"
done
8. Cifra simmetrica (senza chiave pubblica, solo password)
Se non vuoi gestire chiavi ma solo una password:
gpg --symmetric --cipher-algo AES256 backup.tar.gz
# Ti chiede una password, cifra con quella
# Chi ha la password decifra con:
gpg --decrypt backup.tar.gz.gpg > backup.tar.gz
9. Backup della chiave privata (fondamentale!)
Se perdi la chiave privata, i tuoi backup cifrati diventano illeggibili.
gpg --export-secret-keys --armor info@ilbarone.net > mia-privkey.asc
# STAMPA questo file, mettilo in cassaforte fisica
# OPPURE spezzalo con SSSS (Shamir Secret Sharing) in 3 pezzi conservati in 3 posti
10. Import su un nuovo computer
gpg --import mia-privkey.asc
gpg --edit-key info@ilbarone.net
> trust
> 5 (I trust ultimately)
> y
> save
11. Sub-key per uso quotidiano
Best practice avanzata: la chiave master resta offline, generi sub-key per operazioni quotidiane. Se un sub-key viene compromesso, revochi solo quello senza perdere l'identita'. Guida Debian spiega bene.
12. Errore comune: "no valid recipient"
Significa che la chiave pubblica del destinatario non e' trusted. Fix:
gpg --edit-key destinatario@example.com
> trust > 5 > y > save
age (github.com/FiloSottile/age) e' un tool piu' semplice di GPG, chiavi corte, sintassi minimale. Per uso personale e' sufficiente e piu' user-friendly. GPG resta lo standard interoperabile e supportato da ogni tool aziendale.