2016-07-14 40 views
7

Git, her zaman bir imza kullanarak imzalarken gizli anahtarın kilidini açmak için bir parola girmemi ister. BenGit işlemini imzalarken GnuPG parolasının sorulmasını engelle

+2

Sen 'gpg-agent' kurmak ve şifrenizi önbelleğe' max-cache-ttl' ile birlikte 'default-cache-ttl' seçeneği yapılandırabilirsiniz. – miqid

+0

Git'i kullanarak bunu yapmanın bir yolunu arıyorum. Git şifre önbellekleme gibi. – pokemon

cevap

8

Git GnuPG parola ele geçmez taahhüt imzalanması sırasında bunu her zaman girmek zorunda kalmamak için

git commit -S -m 'message' 

nasıl önbellekte şifresini saklayabilirsiniz. Kolayca (Windows'ta AppData klasörde bir yerlerde gizli) ~/.gnupg/gpg-agent.conf düzenleyerek ayarlanır gpg-agent yoluyla olur önbelleğe alma passphrases ait GnuPG'yi yeteneklerine güvenmek zorundadır.

parolası GnuPG'nin her çağırma sonra önbelleğe saniye sayısı olarak ayarlayın default-cache-ttl. maximum-cache-ttl, parolanın silineceği başlangıçta parola girildikten sonraki süreyi ayarlar. ignore-cache-for-signing'un ayarlanmadığından emin olun - aksi halde GnuPG, imzalama işlemleri için önbelleği yoksayar.

Herhangi bir kullanıcı etkileşimi olmadan işlem imzalamak istiyorsanız, önbelleği gpg-preset-passphrase aracılığıyla önceden doldurabilirsiniz, çoğu zaman /usr/lib/gnupg2/gpg-preset-passphrase; veya rasgele bir şifre çözme veya imzalama işlemi gerçekleştirerek. Git öğesinin --passphrase [your passphrase] gibi bir seçeneği gpg'a geçirilecek şekilde yapılandırmasına izin verebilir, ancak bu yaklaşımın kısıtlamalarını ve güvenlik etkilerini okuyun (parolanızın bir yere düz metin olarak kaydedilmesini içerir). Eğer gerçekten istediğiniz veya her işlemek imzalamak gerekmiyorsa

+0

'~/.gnupg/gpg-agent.conf' içermiyor, bunun yerine' ~/.gnupg/gpg.conf' var, 'default-cache-ttl' ayarını yapmak tamam mı? – pokemon

+0

Hayır, bu seçenekler 'gpg-agent.conf' için açık bir şekilde belirtilmiştir. "Gpg-agent" kurulu mu ('' gpg-agent' bir girişi listelemeli '' var mı? Aksi takdirde, sadece yeni bir dosya oluşturun ve bu seçenekleri ayarlayın. –

+0

Evet, gpg-agent'ım yüklü, fakat ne gpg-agent.conf dosyasında ne de gpg.conf dosyasında çalışmıyor. Bu arada, Ubuntu gnome 16.04 kullanıyorum, bu yöntemin üzerinde çalıştığından emin misiniz? – pokemon

-4

, sen çalıştırarak varsayılan olarak imzalanması kapatabilirsiniz:

git config --global commit.gpgsign false 

sonra bir taahhüt imzalamak istiyorsanız, kullanarak bunu yapabilirsiniz -S bayrağı. Bunun gibi ..

git commit -S -m your commit message 

Sadece hayatımı kolaylaştırdım!

+0

ve bunun OP'nin sorduğu sorulara cevap verebileceğini düşünüyor musunuz? –

+0

Bu, soruya bir cevap vermemektedir. Yeterli [itibara] sahip olduğunuz zaman (https://stackoverflow.com/help/whats-reputation) herhangi bir gönderiye yorum yapabilirsiniz (https://stackoverflow.com/help/privileges/comment); bunun yerine, [askerden açıklama istemeyen cevaplar verin] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-yerine). - [Yorum yazıla] (/ review/düşük kaliteli yazılar/17806364) –