2016-04-21 18 views
5

के साथ हस्ताक्षरित गिट काम करता है मैं जीपीजी कुंजी "ए" के साथ थोड़ी देर के लिए गिट काम पर हस्ताक्षर कर रहा हूं। थोड़ी देर के बाद मैंने उस कुंजी को रद्द करने और जीपीजी कुंजी "बी" का उपयोग शुरू करने का फैसला किया। मैंने कुंजी "बी" के साथ नए गिट कामों पर हस्ताक्षर करना जारी रखा।निरस्त जीआईजी कुंजी

मैं अभी भी दोनों कुंजी (निरस्त कुंजी "ए" और नई कुंजी "बी") स्थानीय रूप से रखता हूं। नई प्रतिबद्धता ठीक है, लेकिन अब मेरी समस्या यह है कि git log --show-signature के साथ देखे जाने पर निरस्त कुंजी "ए" के साथ हस्ताक्षरित सभी पुराने गिट लाल चेतावनी के साथ प्रदर्शित होते हैं।

यहाँ कैसे इस चेतावनी Git लॉग में दिखाई देता है (इसमें से अधिकांश लाल चिल्ला रहा है):

commit 39a53e42c8856278f481b9035e54eb90d8d2a0b7 
gpg: Signature made Sat Aug 1 22:24:38 2015 CEST using RSA key ID 2F7EF26C 
gpg: Good signature from "My Name <email1>" [ultimate] 
gpg:     aka "My Name <email2>" [ultimate] 
gpg: WARNING: This key has been revoked by its owner! 
gpg:   This could mean that the signature is forged. 
gpg: reason for revocation: Key is superseded 
gpg: revocation comment: New GPG key is used. 
gpg: revocation comment: New key fingerprint: C464 17C1 4F7B D54E A082 7090 CAFA 7B1B 2914 ED81 
gpg: revocation comment: New key id:   2914ED81 
Author: My name <email1> 
Date: Sat Aug 1 22:24:38 2015 +0200 

    Improve test helper 

वहाँ एक सेटिंग मैं Git या GPG कि इस कुंजी अभी भी "ठीक है" और विश्वास करने योग्य है बता सकते हैं है , बस इतना है कि मैं अब इसका उपयोग नहीं कर रहा हूँ? (मैं इस पुरानी कुंजी को निरस्त करना चाहता हूं)

मैं सराहना करता हूं कि जीपीजी (या गिट) "हल्के ढंग से" संकेत दिया गया है कि नकली काम करने के बजाए कुंजी उपयोग में नहीं है। क्या कोई सुरक्षा या ट्रस्ट सेटिंग है जिसे मैं प्राप्त करने के लिए सेट कर सकता हूं?

+1

शायद आप 'गिट लॉग --format = "% G का उपयोग कर सकते हैं?" ': देखें [नीचे मेरा संशोधित उत्तर] (http://stackoverflow.com/a/36761677/6309) और * अंत * अधिक विस्तृत उत्तर "[हस्ताक्षरित गिट की पुष्टि करता है?] (http://stackoverflow.com/a/32038784/6309)"। – VonC

उत्तर

3

अद्यतन Q4 2016 Git 2.11 के साथ:

git log अतिरिक्त स्थिति कोड E, X, Y, RERRSIG, EXPSIG, EXPKEYSIG, और REVKEYSIG के लिए, ताकि %G? का एक उपयोगकर्ता अधिक जानकारी हो जाता है प्रस्तुत करता है।
देखें Verifying signed git commits?


वहाँ अपने मामले में क्या करना ज्यादा नहीं लगता है।

was debated in 2010, सर्वोत्तम अभ्यास के रूप में एक दिलचस्प विचार सहित यही कारण है कि:

आप कर सकते हैं निश्चित रूप से कुंजी प्रति एक से अधिक ई-मेल एड्रेस है, लेकिन आप कभी नहीं एक से अधिक कुंजी होना चाहिए प्रति ई-मेल

यह वास्तव में काफी आम है।
कम से कम ऐसा होगा यदि लोग पुराने और एक नई कुंजी के बीच संक्रमण करने की कोशिश कर रहे हैं --- उदाहरण के लिए, यदि वे कम सुरक्षित क्रिप्टो एल्गोरिदम से अधिक सुरक्षित क्रिप्टो एल्गोरिदम में स्थानांतरित करने का प्रयास कर रहे हैं।

मैं चीजों चीजों के इन प्रकार का प्रबंधन करने के लिए सबसे अच्छा तरीका समझ में के रूप में उप कुंजी का उपयोग करने के लिए है। आप उप-कुंजी पर समाप्ति समय बदल सकते हैं, और फिर अंततः आप पर हस्ताक्षर करने के लिए अपनी प्राथमिक सार्वजनिक कुंजी को संरक्षित करते समय इसे निरस्त कर सकते हैं।
वास्तव में नियमित रूप से अपनी उप-कुंजी को बदलने और पुराने लोगों की अवधि समाप्त करने का अच्छा विचार है।

अगर आप subkeys उपयोग कर सकते हैं (उदाहरण के this tutorial या this one निम्नलिखित):

OpenPGP आगे का समर्थन करता है उपकुँजियाँ है, जो सामान्य कुंजियों के समान ही हैं, केवल उन्हें एक मास्टर कुंजी युग्म के लिए बाध्य कर रहे हैं। हस्ताक्षर करने या एन्क्रिप्शन के लिए एक उपकुंजी का उपयोग किया जा सकता है।
उपकुंजियों का वास्तव में उपयोगी हिस्सा यह है कि उन्हें मास्टर कुंजी से स्वतंत्र रूप से निरस्त किया जा सकता है, और उनसे अलग से संग्रहित किया जा सकता है।

+0

यह भी देखें http://security.stackexchange.com/q/32386 और http://security.stackexchange.com/q/74067 – VonC

संबंधित मुद्दे