Gpg usage

From wikinotes

Overview

echo foo | gpg -e -r foo@domain.com          # encrypt for foo@domain.com
echo foo | gpg -e -r foo@a.com -r bar@a.com  # encrypt for both foo/bar
echo $secret | gpg -d -r foo@a.com           # decrypt for foo@a.com

gpg --homedir /foo/bar -aer foo@domain.com   # gpg --homedir /foo/bar --armor --encrypt --recipient foo@domain.com

Encrypt/Decrypt

  • Encrypting uses the public key, and no passphrase is required
  • Decrypted/signing uses the private key, and a passphrase is required
  • You can cache the private key's password after login using gpg agent

Text

echo "text" | gpg --encrypt \
  --armor                 `# (opt) chars restricted to ASCII` \
  --homedir /etc/gpgkeys  `# (opt) alternate dir with keys` \
  -r keyname              `# (opt) prv key to encrypt with`

echo "encrypted_text" | gpg --decrypt

Files

gpg -c file.txt       # encrypt gpg
gpg    file.txt.gpg   # decrypt encrypted gpg file

Archives

gpg-zip -c -o file.gpg *.txt  # encrypt files into gpg-zip
gpg-zip -d    file.gpg        # decrypt gpg-zip file

Key Management

For much more detail, see gpg keys.

gpg --list-keys         # list all keys
gpg --list-public-keys  # list pub keys
gpg --list-secret-keys  # list prv keys