सवाल मैकोज़ मेरे एसएसएच पासफ्रेज़ से पूछता रहता है क्योंकि मैंने सिएरा को अपडेट किया था


यह पासफ्रेज को याद करता था, लेकिन अब यह हर बार मुझसे पूछ रहा है।

मैंने पढ़ा है कि मुझे इस आदेश के साथ सार्वजनिक कुंजी को पुन: उत्पन्न करने की आवश्यकता है, जो मैंने किया था:

ssh-keygen -y -f id_rsa > id_rsa.pub

लेकिन यह कुछ भी ठीक नहीं किया।

मैकोज़ को फिर से अपना पासफ्रेज़ कैसे याद कर सकता हूं?


524
2017-09-22 09:21


मूल


मुझे संबंधित व्यवहार का सामना करना पड़ रहा है: इससे पहले, कुंजी रिंग संवाद पासवर्ड मांगने के लिए पॉप अप करेगा, अब मुझे नियमित एसएसएच कंसोल प्रॉम्प्ट मिलता है। कुछ सहायक प्रोग्राम पंजीकरण शायद चला गया है। - Daniel B
यह वर्षों से हुआ है जब से मैंने अपना id_rsa उत्पन्न किया है और मैंने कभी पासफ्रेज का उपयोग नहीं किया है और इसे कई सर्वरों में एसएसएच के लिए उपयोग किया है। क्या मेरे पास वास्तव में एक पासफ्रेज है, या क्या सिएरा सोचता है कि मुझे चाहिए? ध्यान दें कि $ बिल्ली ~ / .ssh / id_rsa | हेड -2 ----- BEGIN आरएसए निजी कुंजी ----- प्रो-टाइप: 4, एनक्रिप्टेड - Joe Murray
का डुप्लिकेट apple.stackexchange.com/q/254468/62697 - Cœur
यदि आप प्रेट्ज़ो का उपयोग कर रहे हैं और इनमें से कोई भी जवाब आपकी समस्या का समाधान नहीं करता है: सुनिश्चित करें कि आपके पास नहीं है ssh मॉड्यूल में सक्षम है zpretzorc। यह मैकोज़ पर अनावश्यक है, और यदि सक्षम है, तो यह आपके द्वारा जोड़े जाने के बाद भी आपके पासफ्रेज़ के लिए संकेत देगा UseKeychain। - Jimothy
करने का प्रयास करें ssh -v ... यह देखने के लिए कि क्या इसमें कोई उपयोगी डीबग जानकारी है ... - rogerdpack


जवाब:


मैकोज़ (10.12.2) के नवीनतम संस्करण में, यह ठीक करना आसान है। बस अपना संपादित करें ~/.ssh/config और सक्षम करें UseKeychain विकल्प:

Host *
    UseKeychain yes

कुछ और बदलने की जरूरत नहीं है। अब सब कुछ नवीनतम अपडेट से पहले काम करने के लिए इस्तेमाल किया जाता है। आपको कुंजी जोड़ने की आवश्यकता नहीं है ssh-agent


संपादित करें: आपको अभी भी एक बार अपना पासफ्रेज दर्ज करना होगा। यदि आप इसे नहीं जानते हैं, तो फ़ॉलो करें ये निर्देश इसे प्रकट करने के लिए।


1017
2017-12-19 12:04



यह बिल्कुल मेरे लिए काम किया। नीचे दी गई सब कुछ इस फिक्स से अधिक जटिल लगती है। - Br.Bill
ध्यान दें Host * ब्लॉक (लगभग) हमेशा आपके नीचे रखा जाना चाहिए ~/.ssh/config फ़ाइल। कब ssh यह सेटिंग्स का उपयोग कर रहा है जो इसका उपयोग करता है प्रथम मूल्य यह पाता है। इस प्रकार, अंत में वाइल्डकार्ड ब्लॉक डालने से, यह डिफ़ॉल्ट के सेट के रूप में कार्य करता है; आप फ़ाइल में पहले निर्दिष्ट करके विशिष्ट होस्ट के लिए सेटिंग ओवरराइड कर सकते हैं। - Molomby
यह मेरे लिए भी काम करता था लेकिन मुझे एक बार पासफ्रेज सही ढंग से दर्ज करना पड़ा। वहाँ है एक और जवाब यह बताता है कि यदि आप इसे याद नहीं करते हैं तो आप पासवर्ड कैसे देख सकते हैं। - FGreg
अगर कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो एक बनाना और इसे जोड़ना भी काम करेगा। - wynshaft
आपको इसकी आवश्यकता नहीं है Host * शीर्षक। बस एक लाइन संलग्न करें UseKeychain yes आपके शीर्ष पर .ssh/configयदि आप सभी होस्टों पर आवेदन करना चाहते हैं। - sj26


मुझे भी यही समस्या थी। मैकोज सिएरा कीचेन पासफ्रेज मांगता रहता है। आपकी id_rsa को सुरक्षा के लिए पासफ्रेज़ से एन्क्रिप्ट किया जाना चाहिए। फिर इसे कीचेन में जोड़ने का प्रयास करें ssh-add -K ~/.ssh/id_rsa

यदि आपकी कुंजी किसी अन्य फ़ोल्डर में है ~/.ssh फिर सही फ़ोल्डर के साथ प्रतिस्थापित करें।

कीचेन अब आपकी एसएसएच कुंजी जानता है और, उम्मीद है कि अब सभी काम (मेरा किया गया)


170
2017-09-23 12:53



यह काम करता है लेकिन जब मैं अपने कंप्यूटर को पुनरारंभ करता हूं तब तक जारी नहीं रहता है। किसी और को एक ही समस्या है? - joshua.paling
हाँ, यहां एक ही मुद्दा है। @ joshua.paling - kingkool68
@ joshua.paling, kingkool68 - ऐप्पल ने मुख्यधारा के ओपनएसएसएच व्यवहार के अनुरूप अपने एसएसएच कुंजी को रीबूट में याद रखने की क्षमता को हटा दिया है। समान कार्यक्षमता प्राप्त करने के अन्य तरीकों के लिए यह प्रश्न देखें: apple.stackexchange.com/questions/254468/... - Evan Pon
@EvanPon लेकिन यह एन्क्रिप्टेड कुंजी के साथ काम नहीं करेगा, है ना? - Konrad Rudolph
@ कोनराड रुडॉल्फ यह मेरे लिए काम करता है। कॉलिंग ssh-add उसके साथ -A प्रश्न में पहचान के लिए किसी भी पासवर्ड के लिए मैकोज़ कीचेन में विकल्प दिखाई देगा। मेरा मानना ​​है कि यह आपको संकेत देगा यदि पासवर्ड कुंजीपटल में नहीं हैं। - Evan Pon


यह मेरे समान मुद्दे को ठीक करता है:

/usr/bin/ssh-add -K

यह आपके कीचेन में पासफ्रेज स्टोर करता है।

अद्यतन करें (धन्यवाद @EasyCo): यह काम करता है लेकिन पुनरारंभ के बीच नहीं रहता है। इस पृष्ठ पर @ जुक्का-सुमेला का समाधान कर देता है पुनरारंभ करने के लिए काम करते हैं। आप यहां वह जवाब पा सकते हैं:

https://superuser.com/a/1158050/234685


65
2017-10-09 14:39



यह एकमात्र चीज है जो काम करती है। - cryptic0
इस समाधान का उपयोग करते समय मुझे .ssh / .config बनाने की आवश्यकता नहीं थी। - Shai
यह मेरे लिए काम किया। होस्ट फ़ाइल को संपादित करने की आवश्यकता नहीं है। मैं सिएरा पर हूँ। - cchiera
यह मैक ओएस सिएरा पर मेरे लिए काम किया। - Dayron Gallardo
जैसा कि पहले बताया गया है, यह काम करता है लेकिन पुनरारंभ के बीच नहीं रहता है। @ जुक्का-सुमेला का समाधान फिर से शुरू होता है। - EasyCo


मुझे केवल एक बार सही पासफ्रेज दर्ज करना पड़ा और यह काम करना शुरू कर दिया। समस्या यह थी कि मुझे अपना मूल एसएसएच पासफ्रेज याद नहीं आया, लेकिन मैंने इसे निम्नलिखित करके पुनर्प्राप्त किया गितूब से ये कदम:

  • खोजक में, कीचेन एक्सेस ऐप की खोज करें।
  • कीचेन एक्सेस में, एसएसएच की खोज करें।
  • एक नया संवाद बॉक्स खोलने के लिए अपनी एसएसएच कुंजी के लिए प्रविष्टि पर डबल क्लिक करें।
  • कीचेन एक्सेस संवाद निचले बाएं कोने में, पासवर्ड दिखाएं चुनें।
  • आपको अपने प्रशासनिक पासवर्ड के लिए संकेत मिलेगा। इसे "कीचेन एक्सेस" संवाद बॉक्स में टाइप करें।
  • आपका पासवर्ड प्रकट होगा।

39
2017-10-29 17:16



काम नहीं करता टर्मिनल अभी भी "खराब पासफ्रेज" कहता है - Jayden Lawson


उपरोक्त समाधानों में से कोई भी एक नए मैकबुक प्रो पर एल कैपिटन पर सिएरा स्थापित करने के बाद काम नहीं करता है। डिजाइन द्वारा सिएरा कुंजीचैन में एसएसएच कुंजी को सहेजता नहीं है।

मेरे लिए दो समाधान काम करते थे। एक आदेश जोड़ने के लिए है ssh-add -A &> /dev/null ~ / .bash_profile करने के लिए। हर बार जब आप टर्मिनल खोलते हैं, तो यह आदेश निष्पादित किया जाएगा ( &> /dev/null भाग फ़ाइल / dev / null कमांड के आउटपुट भेजता है)।

एक अधिक जटिल लेकिन थोड़ा स्लीकर समाधान उस आदेश के साथ एक प्लिस्ट बनाने के लिए है जिसे ओएस बूट होने पर हर बार निष्पादित किया जाता है मैकोज़ सिएरा कीचेन में एसएसएच कुंजी सहेजना। इसमें फ़ाइल बनाने के लिए एक्सकोड का उपयोग करना शामिल है।


18
2017-09-27 14:40



यह ऐप्पल का आधिकारिक उत्तर भी दिखता है - देखें openradar.appspot.com/27348363 - Nick Maynard
अब तक मेरे लिए सबसे अच्छा समाधान। मैं मैक ओएसएक्स सिएरा (10.12.2) का उपयोग कर रहा हूं। - zyc


एक फिक्स निम्नलिखित को आपके ~ / .ssh / config फ़ाइल में जोड़ना है:

Host *
   AddKeysToAgent yes
   IdentityFile ~/.ssh/id_rsa
   UseKeychain yes

से लिया गया: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ और देखें: https://apple.stackexchange.com/a/264974/3810


14
2017-12-16 06:14



अब तक, किसी भी उत्तर में, किसी ने इसका उल्लेख नहीं किया है Bad configuration option: usekeychain त्रुटि मैं UseKeychain के साथ मिलता है (हालांकि यह पूंजीकृत है)। लेकिन मैं था केवल उस पंक्ति को हटाकर और AddKeysToAgent और IdentityFile को छोड़कर इसे काम करने में सक्षम (आपको अभी भी पहली बार पासफ्रेज दर्ज करना होगा)। यह मैकोज सिएरा 10.12.6 के साथ है। - William Turrell
जब मैं टर्मिनल में हूं और ssh कमांड का उपयोग करता हूं तो यह ठीक काम करता है, लेकिन अन्य ऐप्स, जैसे वेबस्टॉर्म जो अपने टर्मिनल का उपयोग करते हैं, तब तक थि कॉन्फ़िगरेशन न लें जब तक कि मैं नियमित टर्मिनल में पहले एसएस कमांड का उपयोग नहीं करता। तो यह हर जगह काम करता है, कोई सुझाव? - santiago arizti
@WilliamTurrell यदि यह अभी भी होता है, तो टाइप करें which ssh यह सुनिश्चित करने के लिए कि आप उपयोग कर रहे हैं /usr/bin/ssh और फ़िंक या मैकपॉर्ट्स का संस्करण नहीं है, जो कुछ ऐसा होगा /usr/local/bin/ssh या /opt/local/bin/ssh - Stefan Lasiewski


आज सुबह, सिएरा को अपडेट करने के बाद मुझे वही समस्या थी। मेरे मामले में, id_rsa फ़ाइल एन्क्रिप्ट की गई थी और डिक्रिप्ट करने के बाद यह एक आकर्षण की तरह काम कर रहा था।

  1. सत्यापित करें कि आपका क्या है id_rsa फ़ाइल निम्न आदेश के साथ एन्क्रिप्ट किया गया है: cat ~/.ssh/id_rsa | head -2
  2. अगर दूसरी पंक्ति कहती है Proc-Type: 4,ENCRYPTED, यह एन्क्रिप्ट किया गया है और आप इसे डिक्रिप्ट करने का प्रयास कर सकते हैं
  3. महत्वपूर्ण: अपने मूल का बैकअप लें id_rsa फाइल! आदेश का प्रयोग करें cp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
  4. अपनी निजी कुंजी के साथ डिक्रिप्ट करें openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
  5. मूल कुंजी निकालें (rm ~/.ssh/id_rsa) और इसे डिक्रिप्ट किए गए एक के साथ प्रतिस्थापित करें: mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

इन चरणों के बाद, आप फिर से एसएसएच का उपयोग करने में सक्षम होना चाहिए।


7
2017-09-22 10:58



हालांकि यह एक तरह का कामकाज है, मुझे यह वास्तव में नहीं लगता है हल करती है ओपी की समस्या। - Daniel B
यह मेरे लिए काम करता है। @DanielB, ऐसा करने में समस्या क्या है? - Dag Høidahl
@ DagHøidahl कुंजी अब एन्क्रिप्ट नहीं की जाएगी। इसे नियमित उपयोगकर्ता अधिकारों से चोरी किया जा सकता है, इसलिए एन्क्रिप्शन एक मजबूत होना चाहिए। - Daniel B
यह कुंजी से पासवर्ड हटा देता है, यही कारण है कि यह ओपी की समस्या के आसपास काम करता है। लेकिन मैं इसके खिलाफ सिफारिश करता हूं। पासवर्ड वह सब कुछ है जो चोरी होने पर लोगों को आपकी कुंजी का उपयोग करने से रोकता है। चूंकि आपकी कुंजी शायद उन कई प्रणालियों तक पहुंच प्रदान करेगी जिन्हें आप कमजोर नहीं करना चाहते हैं। - Martijn Heemels


कुछ समस्या का उपयोग करते समय मुझे यह समस्या भी थी Capistrano। अधिक निराश। इस मुद्दे से निपटने के लिए यहां दो विधियां हैं जिन्हें मैं जानता हूं।

विधि 1: जोड़ें सभी ज्ञात एसएसएच एजेंट के लिए चाबियाँ।

तो मुझे मिला एक समाधान चलाने के लिए है ssh-add उसके साथ -A विकल्प- जो आपके कीचेन में संग्रहीत किसी भी पासफ्रेज का उपयोग करके एसएसएच एजेंट को सभी ज्ञात पहचान जोड़ता है:

ssh-add -A

अब यह काम करता है लेकिन यह रीबूट पर जारी नहीं रहेगा। इसलिए यदि आप इस बारे में कभी भी चिंता नहीं करना चाहते हैं, तो बस अपने उपयोगकर्ता को खोलें ~/.bash_profile इस तरह की फाइल:

nano ~/.bash_profile

और इस पंक्ति को नीचे जोड़ें:

ssh-add -A 2>/dev/null;

अब जब आप एक नई टर्मिनल विंडो खोलते हैं, तो सब अच्छा होना चाहिए!

विधि 2: जोड़ें केवल चाबी की चाबियाँ जो कि चाबी में हैं एजेंट को

तो जबकि ssh-add -A विकल्प सबसे बुनियादी मामलों के लिए काम करना चाहिए, मैं हाल ही में एक मुद्दे में भाग गया जहां मेरे पास 6-7 वाग्रेंट बॉक्स थे (जो एसएसएच कुंजी / एक्सेस के लिए पहचान का उपयोग करता है) एक मशीन पर अधिक सामान्य के ऊपर सेट id_rsa.pub जगह में।

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

समस्या यह है कि ssh-add -A केवल मनमाने ढंग से आपके पास प्रत्येक एसएसएच कुंजी / पहचान को एजेंट को जोड़ देगा, भले ही ऐसा करने के लिए आवश्यक न हो; जैसे कि वग्रेंट बक्से के मामले में।

इस तरह के परीक्षण के बाद मेरा समाधान था।

सबसे पहले, यदि आपके पास आपकी एजेंट की तुलना में अधिक एसएसएच कुंजी / पहचान शामिल हैं-जैसा कि आपको दिखाया गया है ssh-add -l फिर उन्हें एजेंट से सभी को शुद्ध करें:

ssh-add -D

इसके साथ, फिर एसएसएच एजेंट को पृष्ठभूमि प्रक्रिया के रूप में शुरू करें जैसे:

eval "$(ssh-agent -s)"

अब, यह अजीब हो जाता है और मुझे यकीन नहीं है कि क्यों। कुछ मामलों में आप विशेष रूप से जोड़ सकते हैं ~/.ssh/id_rsa.pub इस तरह एजेंट को कुंजी / पहचान:

ssh-add ~/.ssh/id_rsa.pub

अपने पासफ्रेज़ में टाइप करें, हिट करें वापसी और आपको जाने के लिए अच्छा होना चाहिए।

लेकिन अन्य मामलों में बस इसे चलाने के लिए कुंजी / पहचान जोड़ने के लिए पर्याप्त है:

ssh-add -K

अगर यह सब काम करता है, तो टाइप करें ssh-add -l और आपको एक अकेला एसएसएच कुंजी / पहचान सूचीबद्ध होना चाहिए।

सब अच्छा? अब अपना खोलो .bash_profile:

nano ~/.bash_profile

और इस रेखा को नीचे जोड़ें; टिप्पणी या हटा दें -Aयदि आपके पास यह जगह है तो संस्करण:

ssh-add -K 2>/dev/null;

इससे प्रत्येक स्टार्टअप / रीबूट पर एसएसएच एजेंट को एसएसएच कुंजी / पहचान को फिर से लोड करने की अनुमति मिल जाएगी।

अद्यतन: ऐप्पल ने अब एक जोड़ा है UseKeychain खुले एसएसएच कॉन्फ़िगरेशन विकल्पों और विचारों के लिए विकल्प ssh-add -A एक समाधान भी।

मैकोज़ सिएरा 10.12.2 के रूप में, ऐप्पल (मुझे लगता है) ने एक जोड़ा है UseKeychain एसएसएच विन्यास के लिए विन्यास विकल्प। मैन पेज की जांच कर रहा है (के माध्यम से 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


3
2018-01-02 00:05





जुक्का सुमेलाकी उत्तर सही है, लेकिन यदि आप उपयोग कर रहे हैं openssh से स्थापित homebrew, तो आपको इसे इसके साथ अनइंस्टॉल करने की भी आवश्यकता है:

brew remove openssh

... सिस्टम डिफ़ॉल्ट पर वापस स्विच करने के लिए openssh, क्योंकि होमब्री का समर्थन नहीं करता है UseKeychain एसएसपी विन्यास प्रविष्टि।


3
2018-01-28 08:58



अगर कोई इसे होमब्री के साथ चाहता है, तो मुझे यहां पिंग करें: github.com/rdp/homebrew-openssh-gssapi - rogerdpack


मैंने यहां कई उत्तरों की कोशिश की, लेकिन अभी भी दूरस्थ कुंजी गुजरने के साथ समस्याएं थीं (जैसे कैपिस्ट्रानो का उपयोग करते समय)। इसे हल करने के लिए, मैंने सेब से टेक्नोट पढ़ा और यह मेरी कॉन्फ़िगरेशन फ़ाइल बनाई। मेरे पासवर्ड के लिए और नहीं पूछना!

https://developer.apple.com/library/content/technotes/tn2449/_index.html

Host *  
   IdentityFile ~/.ssh/id_rsa  
   IgnoreUnknown UseKeychain  
   UseKeychain yes  
   AddKeysToAgent yes

2
2018-02-15 02:15