Entropy generation
# run one of these before generating a key
haveged
# or
rngd -r /dev/urandom
Generate keypair
gpg --gen-key
List keys of which we have the secret
gpg --list-secret-keys
gpg --list-secret-keys --keyid-format LONG
Export public key in armor format
gpg --armor --export <keyid> > <output file.pub>
Export private key
gpg --export-secret-keys <keyid> > <output file.asc>
Send keys to keyserver (often doesn't work, have to use keyserver webui)
gpg --keyserver keyserver.ubuntu.com --send-keys <keyid>
Import key from keyserver
gpg --keyserver keyserver.ubuntu.com --recv <keyid>
Decrypt data (need public key from sender)
gpg -d -o <output file>
cat <file> | gpg -d -o <output file>
Encrypt data (need public key from recipient)
gpg -o <output file.gpg> -r <recipient@example.com> -e <input file>