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- एजेंट जहाज। कुछ वितरण इसे अलग से पैकेज करते हैं।