1

У меня есть скрипт для загрузки пяти исходных пакетов Gcrypt из GnuPG Download. Я также получаю подпись для каждой посылки. Например:

FILE=libassuan-2.2.0
wget -q "ftp://ftp.gnupg.org/gcrypt/libassuan/$FILE.tar.bz2.sig" -O "$FILE.tar.bz2.sig"
wget -q "ftp://ftp.gnupg.org/gcrypt/libassuan/$FILE.tar.bz2" -O "$FILE.tar.bz2"
gpg --verify "$FILE.tar.bz2.sig" "$FILE.tar.bz2"

При попытке проверить загрузку выдается сообщение об ошибке «Не удается проверить подпись: открытый ключ не найден». Это ожидаемо, так как виртуальная машина довольно чистая и у нее нет цепочки для ключей GPG (я думаю, так она называется).

У меня есть блок открытого ключа со страницы Ключ подписи , и он находится в файле с именем gpg-signers.pem . Но я не знаю, как использовать его с GPG.

Я искал страницы справочника , но не вижу, как передать блок открытого ключа (gpg-signers.pem) команде (gpg --verify). Существует --sign-key , но он используется для "подписания открытого ключа секретным ключом" ; и не указывать ключ подписавшего для проверки подписи.

Как передать gpg-signers.pem в gpg --verify для проверки подписи на пакете?

1 ответ1

1

Мы должны импортировать ключи перед проверкой подписи.

$ gpg --import gpg-signers.pem
gpg: key 4F25E3B6: public key "Werner Koch (dist sig)" imported
$ gpg --verify libassuan-2.2.0.tar.bz2.sig libassuan-2.2.0.tar.bz2
gpg: Signature made Thu 11 Dec 2014 21:13:07 JST using RSA key ID 4F25E3B6
gpg: Good signature from "Werner Koch (dist sig)"

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

$ gpg --no-default-keyring --keyring 1.keyring --import gpg-signers.pem
gpg: keyring 1.keyring created
...
$ gpg --no-default-keyring --keyring 1.keyring --verify ...
...
$ trash 1.keyring

По замыслу мы получаем ключи вне группы.

Хотя и не так удобно, как HTTPS, мы можем загрузить открытый ключ Вернера Коха с помощью gpg --recv-key 4F25E3B6 . Эта команда работает во многих дистрибутивах с предварительно сконфигурированным сервером ключей. Легко написать какой-нибудь скрипт, заглянуть в файл подписи и автоматически загрузить ключ, которым пользовался человек, выдавший эту подпись. Но решение все еще остается за нами, чтобы определить, доверять ли человеку или нет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .