PGP Key Guide

Generate Key Pair

# Interactive key generation gpg --full-generate-key # Non-interactive (batch mode) gpg --batch --gen-key <<EOF %no-protection Key-Type: RSA Key-Length: 4096 Subkey-Type: RSA Subkey-Length: 4096 Name-Real: Your Name Name-Email: you@example.com Expire-Date: 2y EOF

Key Management

# List public keys gpg --list-keys # Export public key gpg --export --armor you@example.com > public.asc # Export private key (keep safe!) gpg --export-secret-keys --armor you@example.com > private.asc # Import key gpg --import public.asc

Encrypt & Decrypt

# Encrypt a file gpg --encrypt --armor --recipient recipient@example.com file.txt # Decrypt gpg --decrypt file.txt.asc > file.txt # Encrypt + sign gpg --encrypt --sign --armor -r recipient@example.com file.txt

Sign & Verify

# Detached signature gpg --detach-sign --armor file.txt # Verify signature gpg --verify file.txt.asc file.txt # Clearsign (sign text inline) gpg --clearsign message.txt

Keyserver Operations

# Upload to keyserver gpg --keyserver keys.openpgp.org --send-keys KEYID # Search keyserver gpg --keyserver keys.openpgp.org --search-keys user@example.com # Receive/refresh key gpg --keyserver keys.openpgp.org --recv-keys KEYID
Concept Description
Public KeyShare freely — others use it to encrypt messages to you
Private KeyKeep secret — used to decrypt and sign
Fingerprint40-hex unique identifier for a key
Trust WebPGP's decentralized trust model