GPG/PGP needs key servers to work properly. However, some of the servers announced on the web only react slowly – or not at all. The solution is to access a pool of servers which maintains itself.
GPG/PGP works within a web of trust: you trust people you know by signing their keys. If you meet someone you don’t know, you can check if someone you trusted signed the key of the unknown person.
To look up such signatures you however need the infrastructure of such a web of trust: key servers, which store and deliver keys and signatures.
However, many key servers are really slow or do not work properly although they are still listed in programs like KDE’s kgpg. The solution is to use a round robin based pool of servers like the sks key servers. The advantage of such a pool is that even if one server does not respond, next time you query the pool another server will respond most likely. Also, the pool checks itself if the servers are working and removes them from the pool if not. One new child of the family of pool servers is by the way a server provided by the Fedora Project.
The sks pool can be used just like any other key server, for example on the command line:
$ gpg --keyserver keys.fedoraproject.org --recv-keys 449FA3AB gpg: requesting key 449FA3AB from hkp server keys.fedoraproject.org gpg: key 449FA3AB: public key "Linus Torvalds <firstname.lastname@example.org>" imported gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 2 signed: 12 trust: 0-, 0q, 0n, 0m, 0f, 2u gpg: depth: 1 valid: 12 signed: 123 trust: 6-, 0q, 0n, 0m, 6f, 0u gpg: depth: 2 valid: 122 signed: 177 trust: 119-, 0q, 0n, 0m, 3f, 0u gpg: depth: 3 valid: 63 signed: 113 trust: 63-, 0q, 0n, 0m, 0f, 0u gpg: next trustdb check due at 2014-05-10 gpg: Total number processed: 1 gpg: imported: 1
You can also add the key server to GUI programs like kgpg, or add it as default server to your
$ grep keyserver .gnupg/gpg.conf keyserver hkp://pool.sks-keyservers.net