(मैं एक संभावित डुप्लिकेट के रूप में इस बंद करने के लिए मतदान किया है, लेकिन मैं भी एक ऐसी ही जवाब वैसे भी जोड़ सकते हैं।)
SSH परिवहन का उपयोग कर, GitHub SSH कुंजी के आधार पर एक उपयोगकर्ता के रूप में पहचानती है कि आप प्रमाणित करने के लिए उपयोग करते हैं। इसलिए, आपको यह सुनिश्चित करने की ज़रूरत है कि गिट एक एसएसएच कुंजी का उपयोग एक भंडार के लिए और दूसरा दूसरे के लिए कर रहा है।
मुझे लगता है कि ग्रहण करने के लिए जा रहा हूँ:
- आप एक GitHub खाते
user1
कहा जाता है, और आप खाते में है कि अपने स्थानीय निजी कुंजी /home/whoever/.ssh/id_rsa
करने के लिए इसी सार्वजनिक कुंजी जोड़ दिया है। आइए मान लें कि user1
के रूप में उपयोग करने में आपकी रुचि रखने वाली रिपोजिटरी user1/whatever
पर गिटहब पर है।
- आपके पास
user2
नामक दूसरा गिटहब खाता है और आपने उस खाते में अपनी स्थानीय निजी कुंजी /home/whoever/.ssh/new/id_rsa
से संबंधित सार्वजनिक कुंजी को जोड़ा है। आइए मान लें कि user2
के रूप में उपयोग करने में आपकी रुचि रखने वाली रिपोजिटरी user2/whatever
गिटहब पर है।
इस के साथ सौदा करने के लिए सबसे आसान तरीका प्रत्येक भंडार है, जहां होस्टनाम प्रत्येक दूरदराज के URL में है के लिए एक नया "दूरस्थ" (यानी एक एक दूरस्थ भंडार के लिए उपनाम) बनाने के लिए है वास्तव में एक उपनाम है कि आप ' ~/.ssh/config
में स्थापित किया गया है। (यदि यह कॉन्फ़िग फ़ाइल मौजूद नहीं है, तो आप इसे बनाना होगा।)
उदाहरण के लिए, की तरह ~/.ssh/config
फ़ाइल में एक प्रविष्टि दिख सकता है:
Host github-as-user1
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_rsa
तो आप जोड़ सकते हैं एक दूरस्थ बुलाया gh-user1
, कहें, के साथ:
git remote add gh-user1 [email protected]:user1/whatever.git
...और फिर अगर आप ~/.ssh/id_rsa
कुंजी का उपयोग कर GitHub पर रिपोजिटरी user1/whatever
करने के लिए अपने master
शाखा पुश करने के लिए चाहते हैं, तो आप सिर्फ कर सकते हैं:
git push gh-user1 master
क्रम दूसरा भंडार के लिए अन्य उपयोगकर्ता (user2
) के रूप में पुश करने के लिए है, तो आप ~/.ssh/config
फ़ाइल में आपको दूसरा उपनाम जोड़ने की आवश्यकता है। उदाहरण के लिए:
Host gh-as-user2
HostName github.com
User git
IdentityFile /home/whoever/.ssh/new/id_rsa
फिर अन्य उपयोगकर्ता के रूप कि दूसरी भंडार करने के लिए पुश करने के लिए, आप बस कर सकते हैं:
git push gh-user2 master
मुझे आश्चर्य है कि क्यों तुम '~/में" दूसरा "कुंजी रखना चाहते हैं। एसएसएच उप-फ़ोल्डर? संख्याओं से पर्याप्त कुंजी होने के सम्मेलन में क्यों न रहें, जैसे: 'id_rsa',' id_rsa.1', 'id_rsa.2', आदि ... –
@JuicyScripter बस अलगाव करना चाहते हैं, आप भी सही हैं गिट को बताने की ज़रूरत है कि किस कुंजी को उपयोग करने की आवश्यकता है और कैसे? –