Vai al contenuto

GPG cheatsheet

Pubblicato:

Cos’è GPG

GPG è l’acronimo di GNU Privacy Guard, un software libero open source compatibile con lo standard OpenPGP per la crittografia e la firma digitale dei dati. Si tratta di uno strumento in grado di creare e gestire chiavi crittografiche, cifrare/decifrare dati e soprattutto verificare l’autenticità di messaggi tramite firma digitale.

Linea di comando

Creare una chiave

gpg --gen-key
# Esempio
# gpg --gen-key

# Per personalizzare la creazione della chiave
gpg --full-gen-key
# Esempio
# gpg --full-gen-key

Elencare le chiavi

gpg --list-secret-keys
# Esempio
# gpg --list-secret-keys

Elencare le fingerprint delle chiavi

gpg --fingerprint
# Esempio
# gpg --fingerprint

Eliminare una chiave

gpg --delete-secret-key <key id or email>
# Esempio
# gpg --delete-secret-key 7663E3B7

Esportare la chiave privata in formato ASCII

gpg --output <out file> --armor --export-secret-key <key id or email>
# Esempio
# gpg --output private_key.pgp --armor --export-secret-key 7663E3B7

Caution

La chiave privata è un dato sensibile e deve essere protetta con attenzione. Non condividere mai la chiave privata con nessuno.

Esportare la chiave pubblica in formato ASCII

gpg --output <out file> --armor --export <key id or email>
# Esempio
# gpg --output public_key.pgp --armor --export 7663E3B7

Importare una chiave

gpg --import <in file>
# Esempio
# gpg --import private_key.pgp

Invio di una chiave a un keyserver

gpg --keyserver <key server> --send-keys <key id>
# Esempio
# gpg --keyserver keyserver.ubuntu.com --send-keys 7663E3B7

Cifrare un messaggio

gpg --output <encrypted file> --encrypt --recipient <key id or email> <file>
# Esempio
# gpg --output message.gpg --encrypt --recipient 7663E3B7 message.txt

Decifrare un messaggio

gpg --output <decrypted file> --decrypt <encrypted file>
# Esempio
# gpg --output message.txt --decrypt message.gpg

Firmare un messaggio

gpg --output <signed file> --sign <file>
# Esempio
# gpg --output message.sig --sign message.txt

Verificare la firma di un messaggio

gpg --verify <signed file>
# Esempio
# gpg --verify message.sig

Assicurarsi che la cartella .gnupg abbia i permessi corretti

# Il proprietario della cartella .gnupg deve essere l'utente corrente
chown -R $(whoami) ~/.gnupg/
# I file nella cartella .gnupg devono avere i permessi 600
# (lettura e scrittura solo per l'utente corrente)
find ~/.gnupg -type f -exec chmod 600 {} \;
# Le cartelle sotto .gnupg deve avere i permessi 700
# (accessibile solo dall'utente corrente)
find ~/.gnupg -type d -exec chmod 700 {} \;