ध्यान दें कि चाबियाँ ssh-add -d/-D न हटाने के लिए कम से कम दो बग रिपोर्ट हैं :
सटीक मुद्दा है:
ssh-add -d/-Dकेवल गनोम-कीरिंग से मैन्युअल रूप से जोड़े गए कुंजी को हटाता है ।
स्वचालित रूप से जोड़े गए कुंजियों को हटाने का कोई तरीका नहीं है।
यह मूल बग है, और यह अभी भी निश्चित रूप से मौजूद है।
इसलिए, उदाहरण के लिए, यदि आपके पास दो अलग-अलग लोड किए गए ssh पहचान हैं जो दो अलग-अलग GitHub खातों से जुड़े हैं - काम के लिए और घर के लिए कहें - उनके बीच स्विच करने का कोई तरीका नहीं है। GitHubtakes पहले वाले से मेल खाता है, इसलिए आप हमेशा GitHub के लिए अपने 'होम' उपयोगकर्ता के रूप में दिखाई देते हैं, काम की परियोजनाओं के लिए चीजों को अपलोड करने का कोई तरीका नहीं है।
स्वचालित रूप से लोड की गई कुंजियों के ssh-add -dलिए आवेदन करने की अनुमति (और स्वचालित रूप से लोड की गई कुंजियों ssh-add -t Xके जीवनकाल को बदलने के लिए), अधिकांश उपयोगकर्ताओं द्वारा अपेक्षित व्यवहार को बहाल करेगा।
समस्या के बारे में अधिक सटीक:
अपराधी है gpg-keyring-daemon:
- यह ssh- एजेंट के सामान्य संचालन को प्रभावित करता है, ज्यादातर इसलिए कि यह एक सुंदर बॉक्स को पॉप कर सकता है जिसमें आप एन्क्रिप्टेड ssh कुंजी के लिए पासफ़्रेज़ टाइप कर सकते हैं।
- और यह आपकी
.sshनिर्देशिका के माध्यम से पंजे करता है , और स्वचालित रूप से आपके एजेंट को मिलने वाली किसी भी कुंजी को जोड़ता है।
- और यह आपको उन कुंजियों को हटाने नहीं देगा।
हम इससे कैसे नफरत करते हैं? आइए गिनती न करें - जीवन बहुत छोटा है।
विफलता को कंपाउंड किया जाता है क्योंकि नए ssh क्लाइंट होस्ट से कनेक्ट करते समय स्वचालित रूप से आपके ssh- एजेंट की सभी कुंजियों को आज़माते हैं।
यदि बहुत अधिक हैं, तो सर्वर कनेक्शन को अस्वीकार कर देगा।
और जब से सूक्ति-कीरिंग-डेमन ने खुद के लिए तय किया है कि आप अपने ssh- एजेंट को कितनी चाबियां देना चाहते हैं, और उन्हें ऑटोलॉइड किया है, और आप उन्हें डिलीट नहीं करेंगे, आप टोस्ट हैं।
यह बग अभी भी Ubuntu 14.04.4 में पुष्टि की गई है, जैसा कि हाल ही में दो दिन पहले (21 अगस्त 2014)
एक संभावित समाधान:
- क्या
ssh-add -Dआपके सभी नष्ट करने के लिए मैन्युअल रूप से जोड़ा चाबियाँ। यह स्वचालित रूप से जोड़े गए कुंजियों को भी लॉक कर देता है, लेकिन बहुत अधिक उपयोग नहीं है क्योंकि gnome-keyringजब भी आप ए करने की कोशिश करेंगे, तो आप उन्हें वैसे भी अनलॉक करने के लिए कहेंगे git push।
- अपने
~/.sshफ़ोल्डर पर नेविगेट करें और अपनी सभी महत्वपूर्ण फ़ाइलों को छोड़ दें, एक को छोड़कर, जिसे आप बैकअप नामक एक अलग फ़ोल्डर में पहचानना चाहते हैं। यदि आवश्यक हो तो आप सीहोर भी खोल सकते हैं और वहां से चाबियाँ हटा सकते हैं।
- अब आप
git pushएक समस्या के बिना करने में सक्षम होना चाहिए ।
एक और समाधान:
आप वास्तव में क्या करना चाहते हैं, gpg-keyring-daemonपूरी तरह से बंद करना है । " " बॉक्स पर
जाएं System --> Preferences --> Startup Applicationsऔर अचयनित करें SSH Key Agent (Gnome Keyring SSH Agent)- आपको इसे खोजने के लिए नीचे स्क्रॉल करना होगा।
आपको अभी भी एक मिल जाएगा ssh-agent, केवल अब यह पूरी तरह से व्यवहार करेगा: कोई कुंजी नहीं ऑटोलॉइड, आप उन्हें जोड़ने के लिए ssh-add चलाते हैं, और यदि आप चाबियाँ हटाना चाहते हैं, तो आप कर सकते हैं। कल्पना करो कि।
यह टिप्पणी वास्तव में सुझाव देती है:
समाधान को gnome-keyring-managerकभी भी शुरू करने से रोकना है, जो प्रोग्राम फ़ाइल के निष्पादन की अनुमति को हटाकर अंततः कठिन था।
रयान ल्यू टिप्पणी में एक और दिलचस्प कोने मामले जोड़ता है :
मामले में यह किसी को भी मदद करता है: मैंने पूरी तरह से id_rsaऔर id_rsa.pubफ़ाइलों को हटाने की कोशिश की , और कुंजी अभी भी दिखाई दे रही थी।
पता चला कि gpg-agentउन्हें एक ~/.gnupg/sshcontrolफाइल में कैशिंग किया गया था ; मुझे उन्हें स्वयं वहां से हटाना पड़ा।
यही कारण है कि मामला है जब है जोड़ दिया गया है यहाँ के रूप में ।keygrip
ssh-add -d?