कैपिसट्रानो का उपयोग करके कुछ कोड को तैनात करने का प्रयास करते समय मेरे पास यह मुद्दा था । अधिक निराश। इस समस्या से निपटने के लिए मुझे दो विधियां दी गई हैं।
विधि 1: SSH एजेंट में सभी ज्ञात कुंजियाँ जोड़ें ।
इसलिए मुझे जो एक समाधान मिला वह विकल्प के ssh-add
साथ चलना है -A
- जो आपके किचेन में संग्रहीत किसी भी पासफ़्रेज़ का उपयोग करके एसएसएच एजेंट को सभी ज्ञात पहचान जोड़ता है - जैसे:
ssh-add -A
अब यह काम करता है लेकिन यह रिबूट के पार नहीं रहेगा। इसलिए यदि आप फिर से इस बारे में कभी चिंता नहीं करना चाहते हैं, तो अपने उपयोगकर्ता की ~/.bash_profile
फ़ाइल को इस तरह खोलें :
nano ~/.bash_profile
और इस पंक्ति को नीचे तक जोड़ें:
ssh-add -A 2>/dev/null;
अब जब आप एक नया टर्मिनल विंडो खोलते हैं, तो सब अच्छा होना चाहिए!
विधि 2: एजेंट में कीचेन में केवल SSH कुंजियाँ जोड़ें ।
इसलिए जब ssh-add -A
विकल्प को सबसे बुनियादी मामलों के लिए काम करना चाहिए, तो मैं हाल ही में एक मुद्दे पर भाग गया, जहां मेरे पास 6-7 वैग्रेंट बॉक्स थे (जो कि एक्सेस के लिए SSH कुंजी / पहचान का उपयोग करता है) id_rsa.pub
जगह में अधिक सामान्य के शीर्ष पर एक मशीन पर सेटअप ।
लंबी कहानी संक्षेप में, मैं SSH कुंजी / पहचान के आधार पर बहुत सारे विफल प्रयासों के कारण रिमोट सर्वर से लॉक हो गया क्योंकि सर्वर एक्सेस पासवर्ड पर आधारित था और SSH कुंजी / पहचान SSH कुंजी / पहचान हैं। तो SSH एजेंट ने मेरे सभी SSH कुंजियों को आज़माया , विफल रहा और मैं पासवर्ड प्रॉम्प्ट पर भी नहीं जा सका।
समस्या यह है कि ssh-add -A
बस मनमाने ढंग से हर एक SSH कुंजी / पहचान आप एजेंट को जोड़ देंगे, भले ही ऐसा करना आवश्यक न हो; जैसे कि वैग्रेंट बॉक्स के मामले में।
बहुत परीक्षण के बाद मेरा समाधान इस प्रकार था।
सबसे पहले, यदि आपके पास जरूरत से ज्यादा SSH कुंजी / पहचान आपके एजेंट में शामिल हैं - जैसा कि ssh-add -l
तब दिखाया गया है, तो एजेंट से उन सभी को शुद्ध करें:
ssh-add -D
उस के साथ, फिर SSH एजेंट को पृष्ठभूमि प्रक्रिया के रूप में शुरू करें जैसे:
eval "$(ssh-agent -s)"
अब, यह अजीब हो गया है और मुझे यकीन नहीं है कि क्यों। कुछ मामलों में आप विशेष रूप ~/.ssh/id_rsa
से एजेंट को कुंजी / पहचान जोड़ सकते हैं :
ssh-add ~/.ssh/id_rsa
अपने पासफ़्रेज़ में टाइप करें, हिट करें Returnऔर आपको जाने के लिए अच्छा होना चाहिए।
लेकिन अन्य मामलों में बस इसे चलाने के लिए कुंजी / पहचान जोड़ा जाना पर्याप्त है:
ssh-add -K
यदि यह सब काम कर रहा है, तो टाइप करें ssh-add -l
और आपको एक अकेला एसएसएच कुंजी / पहचान सूचीबद्ध दिखनी चाहिए।
सब अच्छा? अब अपने को खोलें .bash_profile
:
nano ~/.bash_profile
और इस पंक्ति को नीचे तक जोड़ दें; -A
यदि आपके पास जगह है तो टिप्पणी करें या हटाएं :
ssh-add -K 2>/dev/null;
यह SSH कुंजी / पहचान को प्रत्येक स्टार्टअप / रिबूट पर SSH एजेंट को पुनः लोड करने की अनुमति देगा।
अद्यतन: Apple ने अब UseKeychain
खुले SSH विन्यास विकल्पों में एक विकल्प जोड़ा है और ssh-add -A
एक समाधान भी मानता है।
MacOS सिएरा 10.12.2 के रूप में, Apple नेUseKeychain
SSH कॉन्फ़िगरेशन के लिए एक कॉन्फ़िगरेशन विकल्प जोड़ा है । आदमी पृष्ठ की जाँच (के माध्यम से man ssh_config
) निम्नलिखित जानकारी से पता चलता है:
UseKeychain
On macOS, specifies whether the system should search for
passphrases in the user's keychain when attempting to use a par-
ticular key. When the passphrase is provided by the user, this
option also specifies whether the passphrase should be stored
into the keychain once it has been verified to be correct. The
argument must be ``yes'' or ``no''. The default is ``no''.
जो इस खुले राडार टिकट में बताए अनुसारssh-add -A
आपके समाधान के रूप में एप्पल को देखकर उबलता है या प्रति उपयोगकर्ता विकल्प में से एक को जोड़ता है ।.bash_profile
UseKeychain
~/.ssh/config
$ ssh-add -K
मुझे देता हैssh-add: illegal option -- K