2016-11-20 8 views
0

Недавно мы перешли на Ubuntu 16.04 и там для PHP 7.0Для отправки зашифрованных сообщений с помощью GPG в PHP 7 он запросит пароль

Нет я бег в задачу с одним из наших PHP скриптов, этот скрипт обновляет спелым, используя почтовый интерфейс созрел и отправить подписанную им подпись GPG, которую они используют для аутентификации. Но теперь php cli начинает запрашивать пароль для использования с ключом. Как я могу предотвратить этот вопрос с парольной фразой, я попытался удалить кодовую фразу из ключа, но это не помогло.

мой PHP код выглядит следующим образом:

$gpgkey = "some thubprint of a key"; 
$gpgpwd = "Secret"; 
$res = gnupg_init(); 
gnupg_addsignkey($res,$gpgkey,$gpgpwd); 
$updatemessages = "test"; 
$signedupdatemessages = gnupg_sign($res, $updatemessages); 

Надежда некоторые знает гуманного

С наилучшими пожеланиями,

Баса ван ден Dikkenberg

ответ

0

Ubuntu 16.04 корабли довольно поздняя версия GnuPG, что не позволяет устанавливать кодовую фразу без булавки без дополнительных проблем. Это связано с тем, что довольно большое (и, следовательно, подверженное проблемам безопасности) приложение GnuPG не должно иметь доступа к закрытым ключам и кодам фраз, поэтому эти операции извлекаются на меньший gpg-agent (который теперь запрашивает кодовую фразу).

Извлечение кодовой фразы/установка ее на пустую должна хорошо работать, обязательно установите ключевую фразу для правильного пользователя (GnuPG имеет кэш-серверы для каждой системы).

«GnuPG-2.0-way» setting a passphrase is using the gpg-preset-passphrase utility, который обычно устанавливается в /usr/lib/gnupg2/gpg-preset-passphrase для Debian и производных дистрибутивов. Вы должны разрешить эту операцию, добавляя allow-preset-passphrase к ~/.gnupg/gpg-agent.conf, и запустить

/usr/lib/gnupg2/gpg-preset-passphrase -c [keygrip] 

, обеспечивая при этом ключевой фразе на STDIN (сделать не использовать echo или опцию -P, используя оба пути всех остальных пользователей системы могут прочитать ключевую фразу !). Ключ можно получить, выполнив gpg2 --with-keygrip --list-secret-keys.

+0

Не разрешать isue в php :-( –