где я могу найти открытый ключ для Gnu Emacs? - PullRequest
33 голосов
/ 18 апреля 2011

Я использовал emacs всего полгода с 23.1 до 23.3.

Каждый раз, когда я пытался найти открытый ключ gpg для emacs, я мог проверять пакет tar.gz с tar.gz.sig, выпускаемым с каждой новой версией. Оказалось, я терпел неудачу каждый раз: -].

Кажется, я должен сначала получить открытый ключ, и я искал на сайте emacs, но так и не нашел знак ...

Я могу найти только контрольную сумму SHA1 в списке рассылки http://lists.gnu.org/archive/html/info-gnu-emacs/2011-03/msg00000.html для проверки целостности

Кстати, я не сомневаюсь в безопасности FSF. просто любопытно ... никогда раньше не использовал gpg ...

Можете ли вы дать мне ссылку?

Спасибо

Ответы [ 4 ]

37 голосов
/ 18 апреля 2011

Если вы попытаетесь проверить подпись, используя

gpg --verify <pkg>.key

вы получите вывод, подобный следующему:

gpg: Signature made 02/17/05 14:02:42 GTB Standard Time using DSA key ID BE216115
gpg: Can't check signature: No public key

Идентификатор ключа, который вы ищете - BE216115, поэтому вы просите gpg получить его, используя:

gpg --recv-keys BE216115

Что привело к следующему на моей установке:

gpg: requesting key BE216115 from hkp server keys.gnupg.net
gpg: key BE216115: public key "Francesco Potortì <pot@potorti.it>" imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   1  signed:   6  trust: 0-, 0q, 0n, 0m, 1f, 0u
gpg: depth: 2  valid:   6  signed:   1  trust: 0-, 0q, 0n, 6m, 0f, 0u
gpg: Total number processed: 1
gpg:               imported: 1

Теперь вы можете это проверить. Но так как вы не назначили никакого доверия этой клавише, результат будет:

gpg: Signature made 02/17/05 14:02:42 GTB Standard Time using DSA key ID BE216115
gpg: Good signature from "Francesco Potortì <pot@potorti.it>"
gpg:                 aka "Francesco Potortì <pot@gnu.org>"
gpg:                 aka "Francesco Potortì <Potorti@isti.cnr.it>"
gpg:                 aka "Francesco Potortì <pot@softwarelibero.it>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 4B02 6187 5C03 D6B1 2E31  7666 09DF 2DC9 BE21 6115

Итак, вы будете знать, что подпись действительна, но вы не доверяете открытому ключу. Вы можете доверять или подписывать открытый ключ, используя:

gpg --edit-key BE216115

В командной строке введите help, чтобы увидеть все доступные параметры. Для получения дополнительной информации см. Использование GNU Privacy Guard

21 голосов
/ 19 апреля 2011

Брелок GNU находится на https://ftp.gnu.org/gnu/gnu-keyring.gpg

Вы можете импортировать их локально (после загрузки) с помощью

gpg --import gnu-keyring.gpg
11 голосов
/ 07 марта 2015

Ответ от @vhallac устарел (я пытаюсь проверить загрузку emacs-24.4). Если вы не хотите загружать и импортировать весь набор ключей GNU (как обсуждалось @JSON), вот способ сделать это. В этом ответе я покажу, что работает сегодня, а также как выяснить, что будет работать через год.

Сначала загрузите emacs и его файл .sig. У меня есть:

$ ls | grep emacs
emacs-24.4.tar.xz
emacs-24.4.tar.xz.sig

Если у вас уже установлен gpg, попробуйте проверить его:

$ gpg --verify emacs-24.4.tar.xz.sig 
gpg: Signature made Mon 20 Oct 2014 02:58:21 PM EDT using RSA key ID A0B0F199
gpg: Can't check signature: public key not found

В этой попытке это не удается (вы увидите успешную попытку в конце этого поста). У меня нет открытого ключа. Выходные данные сообщают вам, какой открытый ключ вам нужно получить: A0B0F199. (Это вещь, которая, скорее всего, изменится в будущем.)

Итак, я пытаюсь загрузить его командой по умолчанию:

$ gpg --recv-keys A0B0F199
gpg: requesting key A0B0F199 from hkp server keys.gnupg.net
(...hangs here...)

Это просто зависает. Это потому, что у меня ufw (мой программный брандмауэр Linux) блокирует большинство портов. Вы можете указать gpg использовать порт 80 следующим образом:

$ gpg --keyserver hkp://keys.gnupg.net:80 --recv-keys A0B0F199
gpg: requesting key A0B0F199 from hkp server keys.gnupg.net
gpgkeys: key A0B0F199 not found on keyserver
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

Он прошел через брандмауэр, но не работает, потому что по какой-то причине ключи Emacs / FSF больше не хранятся на сервере gnupg. Поэтому я попробовал другой сервер ключей, о котором я знаю, и у меня есть некоторый уровень доверия:

$ gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys A0B0F199
gpg: requesting key A0B0F199 from hkp server pool.sks-keyservers.net
gpg: key A0B0F199: public key "Glenn Morris <rgm@gnu.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

ОК, это сработало. Теперь проверьте это:

$ gpg --list-keys
...
pub   2048R/A0B0F199 2012-12-23 [expires: 2015-12-23]
uid                  Glenn Morris <rgm@gnu.org>
sub   2048R/951C59EC 2012-12-23 [expires: 2015-12-23]

Да, понял.

Теперь я могу проверить загруженный архив Emacs:

$ gpg --verify emacs-24.4.tar.xz.sig 
gpg: Signature made Mon 20 Oct 2014 02:58:21 PM EDT using RSA key ID A0B0F199
gpg: Good signature from "Glenn Morris <rgm@gnu.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: B294 26DE FB07 724C 3C35  E5D3 6592 E9A3 A0B0 F199

Подпись «хорошая», но не заслуживающая доверия. Смотрите другие ответы о том, как доверять этому ключу.

7 голосов
/ 08 марта 2015

На корневом уровне FTP-сервера GNU имеется файл README, в котором объясняется, как использовать подписи.

См. https://ftp.gnu.org/README для получения актуальной версии.

Текущий файл говорит:

There are also .sig files, which contain detached GPG signatures of the above
files, automatically signed by the same script that generates them.

You can verify the signatures for gnu project files with the keyring file from:
  https://ftp.gnu.org/gnu/gnu-keyring.gpg

In a directory with the keyring file, the source file to verify and the
signature file, the command to use is:

  $ gpg --verify --keyring ./gnu-keyring.gpg foo.tar.xz.sig
...