2012-03-12 11 views
30

पर गिट में एकाधिक एसएसएच कुंजी के बीच स्विचिंग मुझे रिपॉजिटरी होस्टिंग पर दो अलग-अलग खातों तक पहुंचने के लिए अपने क्लाइंट में एकाधिक कुंजी की आवश्यकता है। https://redefy.repositoryhosting.com/support देखें -> मैं अपने क्लाइंट पर एकाधिक कीपर्स के साथ एकाधिक खातों का प्रबंधन कैसे करूं?विंडोज

मुझे समझ में नहीं आता कि विंडोज़ पर गिट में विभिन्न एसएसएच कुंजी के बीच कैसे बदला जाए, क्या कोई मेरी मदद कर सकता है?

+0

आप OpenSSH या Plink उपयोग कर रहे हैं करने के लिए धक्का कर सकते हैं का उपयोग कर परिभाषित कर सकते हैं? –

+0

आप एसएसएच को स्थापित करने के बारे में अधिक जानकारी प्राप्त कर सकते हैं [एक क्लाइंट पर एकाधिक एसएसएच निजी कुंजी का उपयोग करने का सबसे अच्छा तरीका] (http://stackoverflow.com/questions/2419566/best-way-to-use-multiple-ssh-private- कुंजी-ऑन-वन-क्लाइंट) – peron

उत्तर

37

मुझे लगता है कि आप गिट बैश और openssh का उपयोग करते हैं।

जैसा कि लेख में लिखा गया है, आप एसएसएच क्लाइंट के लिए कॉन्फ़िगरेशन फ़ाइल बना सकते हैं जो आपके सभी खातों को सूचीबद्ध करता है। आप ~/.ssh/config

Host account-one 
HostName server.example.com 
User user-one 
IdentityFile ~/.ssh/key-one 

Host account-two 
HostName server.example.com 
User user-two 
IdentityFile ~/.ssh/key-two 

में अपने स्वयं के SSH ग्राहक विन्यास फ़ाइल में निम्न विन्यास लिख सकते हैं क्या यह कहते हैं कि आप एक तरह से दो परिभाषित करते हैं, है, "मेजबान उपनामों" account-one और account-two नाम दिया है। यदि आप कनेक्शन बनाते समय उनका उपयोग करते हैं, तो एसएसएच क्लाइंट सर्वर पते, उपयोगकर्ता नाम और एसएसएच कुंजी फ़ाइल के लिए संबंधित HostName, User, और IdentityFile का उपयोग करेगा। इसके साथ आप उन्हें उसी सर्वर पर अपने खातों और चाबियों तक पहुंचने के लिए उपयोग कर सकते हैं।

Git में, आप दो रिमोट उन्हें

$ git remote add one account-one:repository.git 
$ git remote add two account-two:repository.git 

तो आप उन रिमोट आपकी SSH कनेक्शन के लिए

$ git push one master 
$ git push two master 
+0

हाय, मैं इस कॉन्फ़िगरेशन फ़ाइल का उपयोग करके क्लोन कैसे करूंगा। "$ git क्लोन एक repositoyr.git मास्टर" त्रुटि देता है "बहुत सारे तर्क" – Tariq

+0

होस्टनाम और रिपोजिटरी पथ के बीच कोलन जोड़ने के लिए मत भूलना। आपके मामले में यह 'one: repositoyr.git' – fajran

+0

होगा जैसा दस्तावेज़ में निर्दिष्ट है http://linux.die.net/man/5/ssh_config IdentityFile एक फ़ाइल निर्दिष्ट करता है जिससे उपयोगकर्ता की आरएसए या डीएसए प्रमाणीकरण पहचान पढ़ी जाती है । फ़ाइल का नाम किसी उपयोगकर्ता की होम निर्देशिका या निम्न से बचने वाले वर्णों में से एक को संदर्भित करने के लिए टिल्डे सिंटैक्स का उपयोग कर सकता है: '% d' (स्थानीय उपयोगकर्ता की होम निर्देशिका), '% u' (स्थानीय उपयोगकर्ता नाम), '% l' (स्थानीय होस्ट नाम), '% एच' (रिमोट होस्ट नाम) या '% आर' (दूरस्थ उपयोगकर्ता नाम)। उदाहरण के लिए IdentityFile% u/.ssh/id_rsa –

0

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

'यदि आप गिट बैश का उपयोग करते हैं, तो आप एसएस-एजेंट/एसएसएच- का उपयोग करते हुए, जैसे आप लिनक्स या मैक पर थे, आप कई खातों को प्रबंधित कर सकते हैं। जोड़ें और दोस्तों '

2

विंडोज़ पर आपको पेजेंट को पुटीटी, पीएससीपी, पीएसएफटीपी और प्लिंक के लिए एसएसएच प्रमाणीकरण एजेंट का प्रयास करना चाहिए। यह टूल आपको एसएसएच कुंजी और इसके पास-वाक्यांशों का प्रबंधन कर सकता है। गिट के साथ इसे एक साथ उपयोग करने के लिए आपको पुट्टी इंस्टॉल करना होगा और gIT_SSH चर सेटिंग को plink.exe से लिंक करना होगा।

  1. स्थापित पोटीन और दोस्तों (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
  2. सेट GIT_SSH

    set GIT_SSH=<path-to-plink.exe>

  3. प्रारंभ तमाशा और आप जोड़ना कुंजी
  4. भागो Git

hth डैनियल

7

किस कुंजी का उपयोग एसएसएच प्रोग्राम द्वारा किया जाता है जिसके लिए गिट कनेक्ट करने के लिए उपयोग किया जाता है। डिफ़ॉल्ट सेटअप में यह कमांड लाइन एसएसएच क्लाइंट (openSSH?) होना चाहिए।

OpenSSH के प्रयोग से आप ~/.ssh/config फ़ाइल में विशेष सेनाओं के लिए विशेष रूप से keyfiles कॉन्फ़िगर कर सकते हैं:

Host foo.example.com 
    IdentityFile ~/.ssh/foo.example.com-id_rsa 

Host bar.example.com 
    IdentityFile ~/.ssh/bar.example.com-id_rsa 

कहाँ ~/.ssh/*.example.com-id_rsa प्रत्येक सर्वर के लिए निजी कुंजी फ़ाइलें हैं।

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

यदि आप विंडोज़ पर चल रहे हैं तो भी पथों को आगे बढ़ाना चाहिए? –

+0

उन सभी पथ यूनिक्स की तरह हैं, इसलिए यदि आप विंडोज़ पर सिग्विन का उपयोग कर रहे हैं, तो वे काम करेंगे, अगर आप अपने खोल के रूप में कुछ और इस्तेमाल कर रहे हैं, तो आपको उन्हें समायोजित करने की आवश्यकता होगी। – mamapitufo

+0

धन्यवाद! मैंने अभी देखा है कि आप भी sth का उपयोग कर सकते हैं। विंडोज़ पर "/C/Users/Benny/.ssh/id_rsa" की तरह। –