SVN + SSH, हर बार ssh-add नहीं करना है? (मैक ओ एस)


105

मुझे पता है कि जवाब वहाँ है, लेकिन मैं बहुत यूनिक्स-गूंगा हूं और शायद यह समाधान नहीं पहचानता अगर यह मुझे चेहरे पर मारता।

मैं एक पर हूँ MAC, SSH सुरंग के माध्यम से एक SVN सर्वर से कनेक्ट। मुझे ssh-add privateKey.txtहर बार एसवीएन सर्वर से कनेक्ट करना होगा (दोनों आधारशिला और एक्सकोड एसवीएन से कनेक्ट हो रहे हैं)।

वहाँ कुंजी को "सहेजने" का एक तरीका है तो मुझे हर बार ऐसा करने की ज़रूरत नहीं है? इसे मेरे किचेन में जोड़ें? कुछ कॉन्फिग फाइल? स्क्रिप्ट शुरू करें?

जवाबों:


172

सबसे पहले, अपनी निजी कुंजी फ़ाइल में ले जाएँ ~/.ssh। यह कड़ाई से आवश्यक नहीं है, लेकिन यह ऐसी चीजों के लिए मानक स्थान है।

फिर चला ssh-add -K ~/.ssh/privateKey.txt। यदि आवश्यक हो तो यह आपके पासफ़्रेज़ के लिए संकेत देगा, फिर इसे अपने किचेन में जोड़ें।

उसके बाद, आपको कुछ और नहीं करना चाहिए। थोड़ी लंबी व्याख्या यहां उपलब्ध है


17
मुझे लगता है कि यह स्पष्ट रूप से ध्यान देने योग्य है कि यह एक मैक बात है, एक सार्वभौमिक यूनिक्स चीज नहीं है। उबंटू पर, ssh-addएक -Kतर्क नहीं ले सकता ।
मार्क अमेरी

2
मैं यह नोट करना चाहूंगा कि लिंक्ड लेख तेंदुए के लिए है, जबकि यह अभी भी OS X Mavericks में काम करता है।
जोश ब्राउन

1
हो सकता है कि किसी के पास अन्य वातावरणों के लिए समतुल्य आदेश हो? mysysgit का ssh-add -K तर्क को स्वीकार नहीं करता है, या तो
Blake

5
किसी कारण से जब मैं -केआई को फिर से शुरू करने के बाद भी समस्या होती है
Mat Teague

7
क्या आप macOS Sierra पर हैं? व्यवहार बदल गया है और अब आपको स्पष्ट रूप से लॉगिन पर ssh- एजेंट के लिए अपनी चाबियाँ जोड़ने की आवश्यकता है: github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
निकोलस रिले

49

किचेन में पासफ़्रेज़ संचय करना

किचेन में अपनी डिफ़ॉल्ट कुंजी के लिए पासफ़्रेज़ को संग्रहीत करने के लिए एक टर्मिनल खोलें और चलाएं:

ssh-add -K

और पासफ़्रेज़ को एक अलग कुंजी चलाने के लिए संग्रहीत करने के लिए:

ssh-add -K /path/to/private/key/file

जब आपके पासफ़्रेज़ के लिए संकेत दिया जाता है तो उसे दर्ज करें और वह यह है।

आपको कभी भी ssh-add चलाने या फिर अपना पासफ़्रेज़ दर्ज करने की आवश्यकता नहीं होगी।

इस साइट से लिया गया उत्तर: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


20

बहुत खोजबीन के बाद, मुझे लगता है कि मुझे इस मुद्दे का जवाब पूरी तरह मिल गया है। सबसे पहले, सुनिश्चित करें कि आप करते हैं ssh-add -K ~/.ssh/your_key_here। यह आपके किचेन में कुंजी जोड़ता है। कुछ स्थानों पर, मैंने पढ़ा है कि यह पर्याप्त है, लेकिन मैं निश्चित नहीं था। यह मैक-विशिष्ट भी है, इसलिए यदि आपको किसी अन्य यूनिक्स स्वाद पर ऐसा करने की आवश्यकता है, तो आपके पास यह विकल्प आवश्यक रूप से नहीं होगा।

अच्छे उपाय के लिए, मैंने ~/.ssh/configउन सभी कुंजियों को इंगित करने के लिए फ़ाइल (आपको इसे बनाना पड़ सकता है) को संपादित किया। मेरा निम्नलिखित है:

IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa 
IdentityFile ~/.ssh/my_other_identity_here
IdentityFile ~/.ssh/yet_another_identity_here

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


-Kमैक ओएस एक्स पर कोई भी झंडा नहीं हैssh-add
dr.dimitru

2
वहाँ है एक -Kके लिए ओएस एक्स पर झंडा ssh-add। इसके अतिरिक्त, यह चयनित उत्तर होना चाहिए।
kaiser

1
सुनिश्चित करें कि आप /usr/bin/ssh-addहोमब्रे का उपयोग करते हैं बशर्ते /usr/local/bin/ssh-addकि -के विकल्प उपलब्ध न कराए ।
रेम्को वेंड्ट

2
एक बार ~/.ssh/configवहाँ है, ssh-addमशीन को रिबूट करने के बाद हर बार कमांड चलाने की आवश्यकता नहीं है ।
HAILONG

7

चूंकि macOS 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 particular 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''.

तो बस निम्नलिखित करें:

echo "UseKeychain yes" >> ~/.ssh/config


3
इससे ऊपर जाने की जरूरत है। बहुत महत्वपूर्ण है !
quarezz

2

मुझे macs के साथ बहुत अनुभव नहीं है, इसलिए यह सुनिश्चित न करें कि यह संस्करण आपके लिए ठीक है, लेकिन http://www.phil.uu.nl/~xges/ssh/ पर एक नज़र डालें

इस विशेष अनुप्रयोग काम नहीं करता है, अगर ऐसा है तो आप वैसे भी जो खोज रहे हैं - ssh agent। यूनिक्स जैसे बक्से पर, आप वैश्विक प्रभाव प्राप्त करने के लिए अपने पूरे विंडो प्रबंधक को उसके माध्यम से शुरू करना चाहते हैं, लेकिन यह ओएक्सएक्स में संभव नहीं हो सकता है।

कुछ और जानकारी: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


1

sshkeychain एक संभावना है। का उपयोग कर macports के साथ ठीक स्थापित करता है:

sudo port install sshkeychain

यह पासवर्ड स्टोर करने के लिए किचेन का उपयोग करता है, और आप इसे केवल अपने लॉगिन सत्र के स्टार्ट-अप पर लॉन्च कर सकते हैं (पहले लॉन्च में सामान्य राइट-क्लिक पर गोदी के आइकन + "स्टार्टअप पर लॉन्च" पर)

ध्यान दें कि Apple का svn पासवर्ड को स्टोर करने के लिए कीचेन का उपयोग करता है लेकिन जरूरी नहीं कि svn बाइनरी आप मैकपोर्ट्स के साथ बनाएंगे।


0

चलाकर चाबी की चाबी अपनी चाबी में जोड़ें:

ssh-add -K ~/.ssh/id_rsa

और अपने ssh config ( ~/.ssh/config) फ़ाइल को कुंजी श्रृंखला से ssh-Agent ( AddKeysToAgent yesविकल्प) में स्वचालित रूप से लोड करने और चाबी का गुच्छा ( UseKeychain yesविकल्प) में पासफ़्रेज़ को संग्रहीत करने के लिए फ़ाइल संपादित करें :

Host *
 AddKeysToAgent yes
 UseKeychain yes
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.