2016-11-20 55 views
0

最近,我們切換到Ubuntu 16.04和那裏的PHP 7.0要發送與PHP 7 GPG加密的消息時索要密碼

沒有我運行中的問題與我們的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); 

希望有知道sollution

隨着親切的問候,

巴斯範登Dikkenberg

回答

0

的Ubuntu 16.04船舶相當最新版本的GnuPG,它不允許在沒有進一步麻煩的情況下設置密碼。這是因爲GnuPG應用程序相當大(因此容易出現安全問題)應該無法訪問私鑰和密碼短語,因此這些操作被提取到較小的gpg-agent(現在正在查詢密碼短語)。

刪除密碼/將其設置爲空密碼應該可以很好地工作,請確保爲正確的用戶設置密碼(GnuPG具有每個系統用戶密鑰庫)。

setting a passphrase is using the gpg-preset-passphrase utility的「GnuPG-2.0-way」,通常安裝在/usr/lib/gnupg2/gpg-preset-passphrase中,用於Debian和派生分發。您需要通過添加allow-preset-passphrase~/.gnupg/gpg-agent.conf允許這樣的操作,並運行

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

,同時提供對標準輸入的密碼(做使用echo-P選項,使用這兩種方式的所有其他系統用戶可以讀取密碼!)。 keygrip可以通過運行gpg2 --with-keygrip --list-secret-keys獲得。

+0

Dis解決isue在php :-( –