0058 — GPG
Сейчас принято подписывать пакеты цифровой подписью с помощью GPG. Это почти всегда работает, за исключением тех случаев, когда ваша система ничего не знает о ключе, который использовался для подписи.
В общем виде процедура проверки подписи выглядит так:
- Импортировать нужный ключ в систему.
- Повторно выполнить нужную операцию: загрузка пакета, выполнение скрипта и так далее.
Сложности обычно начинаются на первом этапе.
В принципе, как понять, что проблема с ключом? В терминал или буфер *Messages*, если речь идёт о Emacs, выводится что-то такое:
Error while verifying signature standard-themes-3.0.2.tar.sig:
Command output:
gpg: Подпись сделана Вс 16 ноя 2025 01:10:06 MSK
gpg: ключом EDDSA с идентификатором 0327BE68D64D9A1A66859F15645357D2883A0966
gpg: Действительная подпись пользователя "GNU ELPA Signing Agent (2023) <elpasign@elpa.gnu.org>" [неизвестно]
gpg: Внимание: Данный ключ не заверен доверенной подписью!
gpg: Нет указаний на то, что подпись принадлежит владельцу.
Отпечаток первичного ключа: AC49 B8A5 FDED 6931 F40E E78B F993 C037 86DE 7ECA
Отпечаток подключа: 0327 BE68 D64D 9A1A 6685 9F15 6453 57D2 883A 0966
Это я пытался пакет standard-themes обновить из официального репозитория. Поскольку обычно рядом выводится отпечаток ключа, следует выполнить команду импорта:
sudo gpg2 --keyserver <сервер> --recv-keys <key1> <key2> ... <keyN>
Здесь:
-
<сервер>— сервер ключей. Их много, и не факт, что вы сразу найдёте нужный ключ на нужном сервере. Но попробуйте для начала использовать эти значения (в алфавитном порядке):-
keys.gnupg.net; -
keyring.debian.org; -
keyserver.ubuntu.org; -
pgp.mit.edu.
-
-
<key>— отпечаток ключа. Можно вводить полностью, можно ограничиться только частью. Если она уникальна, ключ будет найден. В противном случае получите сообщение об ошибке.В рассматриваемом случае отпечаток ключа —
0327BE68D64D9A1A66859F15645357D2883A0966.
С учётом вышесказанного, для успешной установки новой версии пакета org в Emacs мне достаточно было выполнить на уровне системы вот эту команду:
sudo gpg2 \
--keyserver keyserver.ubuntu.org \
--recv-keys 0327BE68D64D9A1A66859F15645357D2883A0966