जब निजी कुंजी एक्सेस की जाती है तो GPG हैंग हो जाती है


16

मुझे अपने पीजीपी कुंजी के साथ अपने गिट कमिट पर हस्ताक्षर करना पसंद है, इसलिए जब मैं गया तो मैं काफी चिंतित था git commit -Sलेकिन अपने पीजीपी कुंजी पासफ़्रेज़ के लिए संकेत देने के बजाय, गिट ने बस लटकना शुरू कर दिया। मैंने कई महीनों में अपने GPG सेटअप में कोई बदलाव नहीं किया है और तब से कई कमिट किए हैं जब तक कोई समस्या नहीं है। इसके अतिरिक्त, जब मैं अपनी निजी कुंजियों को देखने का प्रयास करता हूं gpg -K, तो gpg हैंग हो जाती है। हालाँकि, जब मैं gpg -kअपनी सार्वजनिक कुंजियाँ देखने के लिए दौड़ता हूँ, तो यह सूची को सामान्य की तरह लौटाती है। उम्मीद है कि किसी को कुछ पता होगा कि यह समस्या क्या है और इसे कैसे ठीक किया जाए।


क्या आप ssh पर यह कर रहे हैं? यदि ऐसा है, तो क्या आपके पास gpg-agentया दूरस्थ सिस्टम के .bashrc (आदि) में समान सेटअप है, और रिमोट के एक्स डिस्प्ले या समान पर संकेत देने के लिए कॉन्फ़िगर किया गया है? मुझे अतीत में भी इसी तरह की समस्याएँ हुई हैं (उदाहरण के लिए मेरे मिथक बॉक्स पर एक टर्मिनल से मेरे डेस्कटॉप मशीन में gpg की आवश्यकता के लिए कुछ चलाने के लिए। इसके साथ भी इसी तरह की समस्याएँ थीं ssh-agent), और मैंने इसके साथ "जानवर" को "निश्चित" export GPG_TTY=$(tty)किया। .bashrc, यह सुनिश्चित करने के लिए कि प्रॉम्प्ट हमेशा चालू ट्टी पर है। मैं वैसे भी GUI पासवड संकेत नहीं दे सकता।
कैस

1
नहीं, मैं इसे एसएसएच से अधिक नहीं कर रहा हूं। यह अजीब है कि मैंने पाया कि अगर मैं gpg-agent को मारता हूं, तो gpg फिर से काम करता है। मैं यह जानने की कोशिश कर रहा हूं कि एक दीर्घकालिक समाधान क्यों बनाया जाए।
जॉन लेउन्हेंगेन

मैंने अभी-अभी gpg-agentमैन पेज पर ध्यान दिया है कि ऊपर GPG_TTY सेट करना कुछ ऐसा नहीं है जिसे मैंने काम करने के लिए हैक किया है, यह आवश्यक है। मैन पेज कहता है कि आपको हमेशा इसे अपने .bashrc में सेट करना चाहिए जैसा मैंने किया था, और यह भी कहता है It is important that this environment variable always reflects the output of the tty command.- यह वह जगह रही होगी जहाँ से मुझे मिला था। एक अन्य चीज जिसे आपको सावधान रहने की आवश्यकता है, वह है gpg- एजेंट द्वारा उपयोग किया जाने वाला पिनेंट्री प्रोग्राम। मैं मेरा सेट (में है ~/.gnupg/gpg-agent.confकरने के लिए)/usr/bin/pinentry-curses
cas

जवाबों:


21

मैं इस सटीक मुद्दे पर आया (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)

कमांड जो लटकाएगी:

gpg -K # --list-secret-keys
gpg -d # --decrypt
gpg --edit-key
gpgconf --kill gpg-agent

मेरा समाधान ऊपर जॉन द्वारा उल्लिखित के रूप में ही था (यानी। मार gpg- एजेंट) के रूप में सबसे अन्य तरीकों पर कैसे-मैं-मैं-पुनरारंभ- Gpg- एजेंट भी लटका होगा।

# Solution    
pkill -9 gpg-agent

फिर git के हस्ताक्षर करने के लिए मैंने tty env को ऊपर वर्णित कैस द्वारा और साथ ही साथ gpg-fail-to-sign-to-object-object पर सेट किया

export GPG_TTY=$(tty)

तो क्या आपको हर बार रीबूट करने के लिए gpg को फिर से मारना पड़ता है? यही मैं लंबे समय से कर रहा हूं। मुझे उम्मीद है कि हम इसे अच्छे के लिए ठीक करने का एक तरीका खोज लेंगे।
जॉन लेउन्हेंगेन

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