GPG एजेंट कैसे काम करता है?


31

मेरी gpg.conf फ़ाइल में एक पंक्ति है जो कहती है use-agent
मैं समझता हूं कि यह gpg- एजेंट को संदर्भित करता है जो एक डेमॉन है। मैन पेज में कहा गया है "gpg- एजेंट किसी भी प्रोटोकॉल से स्वतंत्र रूप से गुप्त (निजी) कुंजी का प्रबंधन करने के लिए एक डेमॉन है। इसका उपयोग gpg और gpgsm के साथ-साथ अन्य उपयोगिताओं के एक जोड़े के लिए बैकएंड के रूप में किया जाता है।"

क्या कोई समझा सकता है कि gpg के संदर्भ में इसका क्या मतलब है? Gpg- एजेंट का क्या कहना है?

मेरे पास वर्तमान में GPG 1.4 है।

  1. मैं कैसे बता सकता हूं कि एजेंट चल रहा है या नहीं? मैं वास्तव में इस पर भी स्पष्ट नहीं हूं कि क्या gpg- एजेंट मूल GPG 1.4 पैकेज के साथ स्थापित है।
  2. मैं इसे कैसे शुरू कर सकता हूं, अगर यह नहीं चल रहा है?
  3. मैं इसे कैसे रोक सकता हूं, अगर यह चल रहा है?

जवाबों:


38

Gpg- एजेंट एक प्रोग्राम है जो पृष्ठभूमि (एक डेमॉन ) में चलता है और मेमोरी में GPG गुप्त कुंजी संग्रहीत करता है। जब एक GPG प्रक्रिया को कुंजी की आवश्यकता होती है, तो यह एक सॉकेट के माध्यम से चल रहे gpg- एजेंट प्रोग्राम से संपर्क करता है और कुंजी का अनुरोध करता है। यदि एजेंट प्रक्रिया में कुंजी है, तो वह इसे gpg प्रदान करता है। यदि ऐसा नहीं होता है, तो यह आपके कीरिंग से एन्क्रिप्ट की गई कुंजी को लोड करने का प्रयास करता है, और आपको कुंजी के पासफ़्रेज़ के लिए संकेत देता है। एक बार जब एजेंट ने डिक्रिप्ट की गई कुंजी प्राप्त कर ली है, तो वह इसे gpg प्रक्रिया में भेज देता है। GPG कुंजियों के अलावा, Gpg- एजेंट इसी तरह SSH कुंजियों को संग्रहीत कर सकते हैं और SSH के ssh-agentसाथ आने वाले प्रोग्राम की तरह उन्हें SSH प्रक्रियाओं को प्रदान कर सकते हैं ।

एक मुख्य एजेंट का उपयोग करने का मुख्य बिंदु यह है कि आपको अपनी कुंजी का उपयोग करने के लिए हर बार अपना पासफ़्रेज़ टाइप करने की आवश्यकता नहीं है। एजेंट एक बार से अगली मेमोरी में कुंजी रखता है। GPG स्वयं ऐसा नहीं कर सकता क्योंकि यह प्रक्रिया एक बार समाप्त हो जाने के बाद अपना काम करती है।

एक और बात जो एक प्रमुख एजेंट कर सकता है, वह है GPG को दूरस्थ मशीन पर चलाने के लिए स्थानीय एजेंट (जो उन्हें स्थानीय फ़ाइल से लोड कर सकता है और आपके पासफ़्रेज़ के लिए संकेत दे सकता है) की अनुमति देता है। Gpg- एजेंट अभी तक ऐसा नहीं कर सकता है, यह एक नियोजित विशेषता है । SSH के पास बहुत लंबे समय से एजेंट फॉरवर्डिंग है। (यह SSH कुंजियों के लिए gpg-Agent का उपयोग नहीं करने का एक कारण है।)

GPG 1.x या 2.0.x जानता है कि एजेंट चल रहा है क्योंकि GPG_AGENT_INFOचर सेट है। इस चर में एजेंट के साथ-साथ एजेंट की प्रक्रिया आईडी के साथ संचार करने के लिए सॉकेट का स्थान होता है। GPG 2.1 हमेशा एजेंट सॉकेट को अंदर रखता है ~/.gnupg। अगर कोई नहीं चल रहा है तो GPG 2.x हमेशा एक एजेंट प्रक्रिया शुरू करता है।

आप बस चलाकर एजेंट शुरू कर सकते हैं gpg-agent। यदि आप अपने सत्र के हिस्से के रूप में एक एजेंट प्रक्रिया रखना चाहते हैं, तो आप अपने सत्र प्रबंधक के आह्वान को बदल सकते हैं gpg-agent my-session-manager; कुछ वितरण इसे स्वचालित रूप से सेट करते हैं। GPG स्वचालित रूप से एजेंट शुरू कर देगा, और GPG 2.1 अतिरिक्त रूप से पर्यावरण चर की आवश्यकता के बिना एक रनिंग एजेंट ढूंढेगा, इसलिए आपको इसे इस तरह से शुरू करने की आवश्यकता नहीं है जब तक कि आप GPG के पुराने संस्करण का उपयोग न करें या आप एजेंट का उपयोग अन्य प्रकारों को संग्रहीत करने के लिए करें की चाबियाँ जैसे कि एस.एस.एच.

आप शेल कमांड के साथ एजेंट कमांड भेज सकते हैं gpg-connect-agent। एजेंट प्रक्रिया को मारने के लिए killकमांड भेजें (या इसे एक संकेत भेजें)।

GPG के साथ Gpg- एजेंट जहाज। कुछ वितरण इसे अलग से पैकेज करते हैं।


6
"जब GPG प्रक्रिया को कुंजी की आवश्यकता होती है, तो यह एक सॉकेट के माध्यम से चल रहे gpg- एजेंट प्रोग्राम से संपर्क करता है और कुंजी का अनुरोध करता है। यदि एजेंट प्रक्रिया में कुंजी है, तो यह इसे gpg प्रदान करता है।" थोड़ा भ्रामक। एजेंट क्लाइंट प्रक्रिया के लिए एक कुंजी प्रदान नहीं करता है। इसके बजाय, यह क्लाइंट प्रक्रिया की ओर से, कुंजी का उपयोग करके क्रिया करता है। (क्लाइंट साइन, एन्क्रिप्ट या डिक्रिप्ट करने के लिए एजेंट को कुछ प्रदान करता है, और एजेंट ऐसा करता है।) एक एजेंट का उपयोग करते समय, आपका SSH और GPG क्लाइंट सॉफ़्टवेयर कभी वास्तविक कुंजी तक पहुंच प्राप्त नहीं करता है।
पीटर सैमुअलसन

3
"Gpg- एजेंट अभी तक ऐसा नहीं कर सकता है, यह एक नियोजित विशेषता है। SSH के पास बहुत लंबे समय से एजेंट अग्रेषण है। (यह SSH कुंजी के लिए gpg- एजेंट का उपयोग नहीं करने का एक कारण है।)" यह बिल्कुल सच नहीं है। gpg- एजेंट SSH एजेंट अग्रेषण के साथ ठीक काम करता है। मेरे द्वारा इसे हर दिन उपयोग किया जाता है। SSH क्लाइंट अग्रेषण को संभालता है, gpg-agent वास्तव में इसमें शामिल नहीं है। GPG के लिए क्या समर्थित नहीं है अपने आप दूर से एक एजेंट से बात करने की।
पीटर सैमुअलसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.