Every so often I have to restore my gpg keys and I'm never sure how best to do it. So, I've spent some time playing around with the various ways to export/import (backup/restore) keys.
cp ~/.gnupg/pubring.gpg /path/to/backups/
cp ~/.gnupg/secring.gpg /path/to/backups/
cp ~/.gnupg/trustdb.gpg /path/to/backups/
# or, instead of backing up trustdb...
gpg --export-ownertrust > chrisroos-ownertrust-gpg.txt
NOTE The GPG manual suggests exporting the ownertrust instead of backing up the trustdb, although it doesn't explain why.
cp /path/to/backups/*.gpg ~/.gnupg/
# or, if you exported the ownertrust
gpg --import-ownertrust chrisroos-ownertrust-gpg.txt
This only really works if you don't mind losing any other keys (than your own).
gpg -a --export [email protected] > chrisroos-public-gpg.key
gpg -a --export-secret-keys [email protected] > chrisroos-secret-gpg.key
gpg --export-ownertrust > chrisroos-ownertrust-gpg.txt
gpg --import chrisroos-secret-gpg.key
gpg --import-ownertrust chrisroos-ownertrust-gpg.txt
This is mainly about trusting my key once I've imported it (by either restoring the pubring.gpg and secring.gpg, or by using --import). This seems to be what I do the most as I either forget to import the trustdb or ownertrust.
This is so that I can encrypt data using my public key
gpg --edit-key [email protected]
gpg> trust
Your decision? 5 (Ultimate trust)
NOTE If I don't trust the public key then I see the following message when trying to encrypt something with it:
gpg: <key-id>: There is no assurance this key belongs to the named user
Thanks for this gist!
Method 2:
Export
When you exporting (via powershell) the output file will be encoded with BOM. If you try to import this will make the import fail with an error.
To resolve this issue change the encoding of the file to UTF8 without BOM.
Import
If you get the following error:
Try starting the agent using the following command and retry:
gpgconf --launch gpg-agent