В идеале, Вы распространяете Ваши ключи персонально передавая его Вашим корреспондентам. На практике, однако, ключи часто распространяются по электронной почте или другими способами электронной связи. Распространение по электронной почте хорошо когда Вы имеете только нескольких корреспондентов, если корреспондентов много, Вы можете разместить свой ключ на персональной веб-странице. Это не применимо, однако, если люди, которым нужен Ваш открытый ключ, не знают где найти его в сети.
Для решения этой проблемы используются серверы открытых ключей, которые собирают и распространяют открытые ключи. Открытый ключ либо добавляется к базе данных сервера, либо объединяется с существующим ключом, если такой существует. Когда на сервер приходит запрос ключа, сервер просматривает базу данных и, если находит, возвращает запрошенный ключ.
Серверы ключей также полезны когда многие люди часто подписывают ключи других людей. Без сервера ключей, когда Блэйк подписывает ключ Элис, он должен послать ей подписанную им копию ее открытого ключа, которую Элис может добавить к свому набору и передавать, затем, всем своим корреспондентам. Выполнение этих действий способствует построению плотных сетей доверия и повышению безопасности PGP. Однако они становятся помехой когда ключи подписываются часто.
Использование серверов ключей облегчает этот процесс. Когда Блэйк подписывает ключ Элис он посылает подписанный ключ на сервер ключей. Сервер ключей добавляет подпись Блэйка к своей копии ключа Элис. Те кто интересуется обновлением копии ключей Элис, по своей инициативе связываются с сервером ключей и получают оттуда обновленный ключ Элис. Элис не принимает участия в распространении ключа и может получить подписи на своем ключе просто запросив сервер.
Один или более ключей могут быть отправлены на сервер ключей
командой --send-keys
.
В качестве аргумента указываются один или более спецификаторов
ключей.
Сервер ключей, которому будут переданы ключи задается опцией
--keyserver
.
Аналогично, команда
--recv-keys
используется для получения ключей с сервера, но команде
--recv-keys
требуется идентификатор ключа.
В следующем примере Элис обновляет свой открытый ключ с новыми
подписями с сервера ключей certserver.pgp.com
и затем посылает свою копию открытого ключа Блэйка на тот же
сервер ключей для передачи своей подписи на нем.
alice%
gpg --keyserver certserver.pgp.com --recv-key 0xBB7576AC
gpg: requesting key B115BDB6 from certserver.pgp.com ...
gpg: key B115BDB6: 1 new signature
gpg: Total number processed: 1
gpg: new signatures: 1
alice%
gpg --keyserver certserver.pgp.com --send-key blake@anywhere.ru
gpg: success sending to 'certserver.pgp.com' (status=200)
Существуют несколько популярных серверов ключей. Основные серверы ключей синхронизируются друг с другом, поэтому лучше выбрать ближайший к Вам и регулярно использовать его для отправки и получения ключей.