🛡️ Gestire le Password in Modo Sicuro con GPG e uno Script Bash
💭 Il problema: troppe password da ricordare
Come molti, ho decine di credenziali: siti web, server SSH, account VPN, servizi cloud…
Un tempo le annotavo su un quaderno. Ma con l’ansia che potesse finire nelle mani sbagliate.
🔐 La mia soluzione: GPG + uno script Bash + archivio cifrato
⚙️ Perché usare GPG
GPG (GNU Privacy Guard) utilizza una coppia di chiavi asimmetriche (pubblica e privata).
Il file con le password viene cifrato con la chiave pubblica e può essere decifrato solo con la chiave privata, protetta da una passphrase.
Niente cloud, nessuna app esterna: solo sicurezza e controllo locale.
🧪 Lo script pwm
(Password Manager minimale)
Non si tratta di un programma già esistente: è uno script Bash che puoi scrivere tu stesso.
Ecco lo script completo:
📄 Codice completo dello script pwm
#!/bin/bash
GPG_RECIPIENT="TUO_NOME_GPG" # ← sostituisci con il tuo UID o email GPG
GPG_FILE="$HOME/.passwords.gpg"
TMP_FILE="/tmp/passwd.$$"
usage() {
echo "Uso: pwm [-i|-e|stringa_da_cercare]"
echo " -i Inizializza il file cifrato"
echo " -e Modifica l’archivio password"
echo " stringa Cerca nel file decifrato"
exit 1
}
if [ $# -eq 0 ]; then
usage
fi
case "$1" in
-i)
echo "[*] Inizializzazione GPG..."
if [ ! -f "$GPG_FILE" ]; then
touch "$TMP_FILE"
gpg --encrypt -r "$GPG_RECIPIENT" "$TMP_FILE" > "$GPG_FILE"
rm -f "$TMP_FILE"
echo "[✓] File inizializzato in $GPG_FILE"
else
echo "[!] Il file $GPG_FILE esiste già"
fi
;;
-e)
echo "[*] Modifica in corso..."
gpg --decrypt "$GPG_FILE" > "$TMP_FILE" 2>/dev/null
${EDITOR:-vi} "$TMP_FILE"
gpg --yes --output "$GPG_FILE" --encrypt -r "$GPG_RECIPIENT" "$TMP_FILE"
rm -f "$TMP_FILE"
echo "[✓] File aggiornato"
;;
*)
gpg --decrypt "$GPG_FILE" 2>/dev/null | grep -i "$1"
;;
esac
📦 Come installarlo
- Crea il file:
nano ~/bin/pwm
- Incolla lo script e sostituisci
TUO_NOME_GPG
con il tuo nome o email GPG - Rendilo eseguibile:
chmod +x ~/bin/pwm
- Aggiungi
~/bin
al$PATH
se non lo è:echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
🚀 Utilizzo
pwm -i
→ inizializza l’archivio cifratopwm -e
→ modifica con editorpwm gmail
→ cerca “gmail” nelle password
📂 Esempio di contenuto
Scrivi le password in formato semplice (una per riga):
gmail mario.rossi@gmail.com Passw0rd123!
serverSSH root@192.168.1.10 MyS3cretKey!
vpn aziendale@vpn.example.it UltraSafe!
🖥️ Alternativa grafica: KeePassXC
Se preferisci una GUI completa e moderna, ti consiglio KeePassXC:
- 🔐 Tutto offline
- 🔎 Ricerca istantanea
- 📋 Copia in clipboard con timeout
- 📂 Supporta cartelle e tag
- 🔄 Compatibile con
kdbx
di KeePass
Installazione su Ubuntu/Debian:
sudo apt install keepassxc
Disponibile anche per macOS e Windows.
✅ Conclusione
GPG + uno script Bash = gestore password semplice, sicuro, offline e gratuito.
- 🔐 Niente sincronizzazione online
- 🧩 Compatibile con Linux (e WSL/macOS)
- 🛠️ Completamente sotto il tuo controllo
💡 Consiglio: esegui periodicamente un backup sicuro della tua chiave privata GPG!
🔒 Sicurezza al 100%?
Confidenza: 95%
Motivo: Questa soluzione è molto solida se:
- usi una passphrase robusta per la chiave GPG,
- mantieni la chiave privata solo su dispositivi sicuri,
- fai backup del file
.gpg
e della chiave privata su supporti criptati.
Rimane comunque un metodo “artigianale”: ideale per utenti Linux che vogliono controllo completo senza servizi esterni.