GNU gpg.
There is SKS Keyserver Pool:
gpg --keyserver pool.sks-keyservers.net
Popular pgp.mit.edu joined SKS.
Another alternatives:
Define server in ~/.gnupg/gpg.conf to avoid specifying --keyserver each time:
keyserver hkp://keys.gnupg.net # keyserver pool.sks-keyservers.net
To import key with signatures:
$ gpg --keyserver pgp.mit.edu --recv-keys $KEYID
To check revocation statuses and receive new signatures:
$ gpg --keyserver pgp.mit.edu --refresh-keys $KEYID
To find key by names:
gpg --keyserver keyserver.ubuntu.com --search-keys president
To dump current trust model:
gpg --export-ownertrust
Above output can be used for import:
gpg --export-ownertrust | gpg --import-ownertrust
$ gpg --edit-key $KEYID trust
Add to ~/.gnupg/gpg.conf:
trust-model always
or temporarily:
gpg -v --verify --trust-model always file.zip.asc
Export public key in binary (OpenGPG) form:
$ gpg --export $KEYID >$PUBKEY.asc $ gpg --output $PUBKEY.asc --export $KEYID
Export public key in text form:
$ gpg -a --export $KEYID >$PUBKEY.asc $ gpg --armor --export $KEYID >$PUBKEY.asc
Export private key (it still encrypted by pass-phrase):
$ gpg --output $PRIVKEY.gpg --export-secret-key $KEYID
$ gpg --gen-key # answer the question ... $ gpg -o $keyfile --export-secret-keys $NAME
$ gpg --import $keyfile
tmp=$(mktemp -d) gpg --homedir $tmp --import $SECKEY gpg --homedir $tmp --export $ID > $PUBKEY rm -rf $tmp
$ gpg --keyserver pgp.mit.edu --send-key $KEYID
$ gpg --list-keys $ gpg --list-keys $KEYID $ gpg --list-keys $EMAIL $ gpg --list-secret-keys
$ gpg --armor --output $KEYID.rev --gen-revoke $KEYID
$ gpg --delete-key $KEYID $ gpg --delete-key $USER $ gpg --delete-key $EMAIL $ gpg --delete-secret-key $KEYID
$ gpg --show-keys $FILE.key $ gpg --show-keys --with-subkey-fingerprint $FILE.key $ gpg --list-packets $FILE.sig $ gpg --list-packets $FILE.key $ sudo apt-get install pgpdump $ pgpdump $FILE.sig $ pgpdump $FILE.key
To sign with first key:
$ gpg -o $file.sig --sign $file $ gpg --default-key $NAME -o $file.sig --sign $file $ gpg -u ${USER_NAME} -o $file.sig --sign $file
$ gpg --verify $file.sig
Make a copy:
$ gpg --export-secret-keys --armor $KEYID > privkey.asc
Restore from copy:
$ gpg --allow-secret-key-import --import privkey.asc