मैं gpg-agent
पीजीपी ई एसएसएच पहचान दोनों के प्रबंधन के लिए उपयोग करता हूं । एजेंट को इस तरह से स्क्रिप्ट के साथ शुरू किया जाता है
gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env"
export GPG_TTY="$(tty)"
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)"
else
source "$gpg_agent_env" 2> /dev/null
fi
जब भी मैं एक इंटरेक्टिव शेल चलाता हूँ, तो यह खट्टा होता है। इस सेटअप के साथ सब कुछ ठीक है, लेकिन एक मुद्दा है। आइए हम बताते हैं:
- एक टर्मिनल खोलें (पृष्ठभूमि में एजेंट को लॉन्च करना) और काम करना शुरू करें
- थोड़ी देर बाद दूसरा टर्मिनल खोलें
- दूसरे टर्मिनल में पासफ़्रेज़ में प्रवेश करने की आवश्यकता है
इस बिंदु पर एक पासफ़्रेज़ का संकेत देना gpg-agent
शुरू कर pinentry-curses
दिया जाएगा, लेकिन यह पहले टर्मिनल में ऐसा करेगा, जिसके परिणामस्वरूप इसका आउटपुट जो कुछ भी चल रहा था (आमतौर पर एक पाठ संपादक) के साथ मिश्रित होता है, जिसमें प्रोग्राम को फिर से शुरू करने या पिनेंट्री को रोकने का कोई तरीका नहीं है (यह 100% बाप्पू का उपयोग करना शुरू करता है और मुझे इसे मारना होगा)।
मुझे यहां कुछ गलत करना चाहिए। यह किसी ने अनुभव किया है?
अपडेट करें:
मुझे लगा कि यह केवल SSH कुंजी को अनलॉक करने के लिए संकेत के लिए होता है, जो इस तरह दिखता है , जबकि PGP कुंजियों के लिए संकेत हमेशा सही (यानी चालू) tty पर खुलते हैं।
export GPG_TTY="$(tty)"
कि यह मेरे लिए तय किया गया था