Я действительно создавал gpg ключ с помощью "gpg - ключ генерала", вот список:
> gpg --list-keys
/home/<user>/.gnupg/pubring.gpg
--------------------------------
pub 2048R/99EDE0B7 2013-02-05
uid Some Company
sub 2048R/97337D10 2013-02-05
Я экспортировал использование с открытым ключом:
> gpg --output key.pub --armor --export 99EDE0B7
Я подписал deb использование пакета:
> dpkg-sig --sign builder -k 99EDE0B7 mypackage.deb
Я могу проверить вход в систему тот же контроллер:
> dpkg-sig --verify mypackage.deb
Processing mypackage.deb...
GOODSIG _gpgbuilder 31C631682D8C1DC833576A283C9A9AA799EDE0B7 1366790488
Я импортирую открытый ключ на другом контроллере:
> apt-key add key.pub
OK
> apt-key list
/etc/apt/trusted.gpg
--------------------
pub 2048R/99EDE0B7 2013-02-05
uid My Company
sub 2048R/97337D10 2013-02-05
Но когда я проверяю пакет на этом новом контроллере, подписание неизвестно:
> dpkg-sig --verify mypackage.deb
Processing mypackage.deb...
UNKNOWNSIG _gpgbuilder 99EDE0B7
Я должен использовать "gpg - импорт" для фактической проверки пакета:
> gpg --import key.pub
Затем работы проверки:
> dpkg-sig --verify mypackage.deb
Processing mypackage.deb...
GOODSIG _gpgbuilder 980CDF084EC87D4C003E020C4B324EFB85743C26 1366872932
Но при использовании склонный установить пакет я получаю ошибку аутентификации:
> apt-get install mypackage
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
mypackage
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/12.0 kB of archives.
After this operation, 0 B of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
mypackage
Install these packages without verification [y/N]?
И я не могу выяснить почему :-(
Спасибо!
Думаю, я понял это сам. apt не проверяет аутентификацию на отдельных пакетах, а только на файлах Release.
попробуйте следующее:
извлеките содержимое файла deb, используя $ ar vx file.deb
, проверьте файл _gpgbuilder и что файл данных имеет расширение .tar.gz
ЕСЛИ у него есть .tar.xz означает, что пакет был создан с использованием dpkg-deb в Ubuntu, который имеет тип сжатия по умолчанию xz (проверьте справочную страницу dpkg-deb по параметру compress-type / -Z)
dpkg-sig проверяет data.tar.gz (как если бы файл был создан с помощью gzip компрессионного типа - поведение по умолчанию в Debian ).
Небольшой взлом мог бы изменить скрипт Perl dpkg-sig, чтобы проверить, даже если файл данных имеет расширение .tar.xz
Надеюсь, это поможет. (Я разместил это на http://ubuntuforums.org/showthread.php?t=2175836 )
Редактировать: кто-то сделал хороший патч http: // osdir .com / ml / ubuntu-bugs / 2014-07 / msg09103.html :)