पूरे उपयोगकर्ता सत्र के लिए GnuPG क्रेडेंशियल्स को कैश रखें


53

GnuPG, gpg-agentएक निजी कुंजी के साथ कैश एक्सेस कर सकता है। मैं उस कैश को पूरे उपयोगकर्ता सत्र के लिए कैसे सक्रिय रख सकता हूं ?

जब मैं कुंजी को अनलॉक करता हूं gpg-agent, तो यह सीमित समय के लिए कैश्ड रहता है। SSH के एजेंट के साथ, मैं एक बार पासफ़्रेज़ में प्रवेश करता हूं और यह पूरे सत्र के लिए कैश रहता है। मैं उसी व्यवहार से चाहता हूं gpg-agent

तो, ssh-agentएक सीमित कैश जीवनकाल से ग्रस्त नहीं है। लेकिन gpg-agentकैश जीवनकाल को कम से कम डिफ़ॉल्ट रूप से सीमित करता है। मैं कैशे समय से सीमा को कैसे समाप्त कर सकता हूं gpg-agent?

जवाबों:


69

GnuPG 2 तक

उपयोगकर्ता कॉन्फ़िगरेशन (इन ~/.gnupg/gpg-agent.conf) केवल डिफ़ॉल्ट और अधिकतम कैशिंग अवधि को परिभाषित कर सकता है; इसे अक्षम नहीं किया जा सकता।

default-cache-ttlविकल्प, (इसलिए यह अगर आप इसका इस्तेमाल रीसेट करता है) टाइमआउट (सेकंड में) पिछले GnuPG गतिविधि के बाद सेट maximum-cache-ttlविकल्प समयावधि सेट (सेकंड में) अपना पासवर्ड डालने के बाद संचित करता है। डिफ़ॉल्ट मान 600 सेकंड (10 मिनट) के लिए default-cache-ttlऔर 7200 सेकंड (2 घंटे) के लिए है maximum-cache-ttl

इसे एक वर्ष के लिए सेट करें - कहें, 34560000 सेकंड (400 दिन) - और आपको ठीक होना चाहिए:

default-cache-ttl 34560000
maximum-cache-ttl 34560000

लेकिन इस परिवर्तन को प्रभावी होने के लिए, आपको gpg- एजेंट को पुनः आरंभ करके सत्र को समाप्त करना होगा।

यदि आप अपने सत्र की लंबाई को सीमित करना चाहते हैं, तो आपको लॉगआउट में डेमॉन को मारने की आवश्यकता होगी। यह ऑपरेटिंग सिस्टम के बीच बहुत भिन्न है, इसलिए मैं एक और प्रश्न / उत्तर का उल्लेख कर रहा हूं जिसमें विभिन्न प्रणालियों के संकेत हैं

आप gpg-agentलॉगिन के दौरान भी पुनरारंभ कर सकते हैं , लेकिन यह कैशिंग समय को सत्र की लंबाई तक सीमित नहीं करता है, लेकिन एक उपयोगकर्ता के लॉगिन। यदि आपके मामले में यह समस्या है तो स्वयं निर्णय लें।

GnuPG 2.1 और ऊपर

GnuPG 2.1 और इसके बाद के संस्करण में, बिना किसी और बदलाव के maximum-cache-ttlनाम बदल दिया गया max-cache-ttl


क्या यह "आप वह नहीं कर सकते जो आप पूछ रहे हैं" प्रतिक्रिया? यह स्पष्ट नहीं है, क्योंकि आप सत्र की लंबाई को सीमित करने या कैशिंग समय को सीमित करने के बारे में बात कर रहे हैं। मैं इसके बिल्कुल विपरीत चाहता हूं: कैश समय या सत्र की लंबाई पर कोई मनमानी सीमा नहीं।
बिग्गुन

इसकी तरह, आप केवल एक विशाल ttl सेट करके वर्कअराउंड कर सकते हैं। इसे एक वर्ष के लिए सेट करें और आपको ठीक होना चाहिए - लेकिन फिर से शुरू करके सत्र को समाप्त करने की आवश्यकता है gpg-agent
जेन्स एराट

कृपया ध्यान दें कि अक्षांश के संस्करणों में (कम से कम gnupg 2.1), maximum-cache-ttlविकल्प मौजूद नहीं है। सही विकल्प देखने के लिए, आधिकारिक दस्तावेज देखें: gnupg.org/documentation/manuals/gnupg/…
पाब्लो ओल्मोस डी

3
कम से कम GnuPG 2.1 में डिफ़ॉल्ट default-cache-ttl600 सेकंड (10 मिनट) है, दो घंटे नहीं।
jlh

@ जेएलएच विभिन्न संस्करणों के मैन पेजों को देखते हुए gpg-agent, सभी रिलीज के लिए सही मूल्य 10 मिनट लगता है। मैंने उत्तर को संपादित किया, इसे इंगित करने के लिए धन्यवाद।
जेन्स एरैट

7

विंडोज के लिए

जिस फ़ाइल को आपको संपादित करने की आवश्यकता है, उसे यहाँ रखा जाना चाहिए: $env:AppData\gnupg

यदि आप इसे PowerShell विंडो में चलाते हैं तो यह खुल जाएगा: C:\Users\<UserName>\AppData\Roaming\gnupg

gpg-agent.confजो भी आपको पसंद हो, उसके साथ ही फाइल को वहां रखें।

आप इसे चलाकर सत्यापित कर सकते हैं:

  1. gpgconf.exe --reload gpg-agent
  2. gpgconf.exe --list-options gpg-agent

आप इस एक लाइनर का उपयोग भी कर सकते हैं: Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"


यदि यहां एक दूसरा उत्तर उपयुक्त नहीं है, तो हम इसे विंडोज के साथ टैग किए गए प्रश्न के लिए स्थानांतरित कर सकते हैं। निश्चित नहीं है कि क्या सही है :)
क्यूबा 12

धन्यवाद और इसे यहाँ रखें - एक ही स्थान पर सभी जानकारी के लिए अच्छा है। 👍
barfuin

5

gpg-connect-agent reloadagent /byeकॉन्फ़िगरेशन बदलने के बाद अपने gpg एजेंट को फिर से लोड करना सुनिश्चित करें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.