2015-05-19 5 views
5

वर्तमान में मैं अपने रिमोट जीआईटी सर्वर के रूप में गिटलैब का उपयोग कर रहा हूं।
मुझे सिंगल गिटलैब खाते का उपयोग करने में कोई समस्या नहीं है जिसमें एसएसएच कुंजी असाइन की गई है।दो गिटलैब खातों के लिए दो एसएसएच कुंजी कैसे सेट करें और टोर्टोइस गिट का उपयोग करके पुश/पुल कैसे करें?

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

कुंजी पहले से लिया गया है
फिंगरप्रिंट पहले से ही

तो लिया गया है कि कैसे मैं का उपयोग करने की एक ही कुंजी का उपयोग करना चाहिए दूसरा गिटलैब खाता? यदि यह संभव नहीं है, तो मुझे एक ही समय में दो कुंजियों का उपयोग कैसे करना चाहिए।

वैसे, मैं विंडोज सिस्टम का उपयोग कर रहा हूं।

अग्रिम धन्यवाद !!

============================================== ===================== अद्यतन:

नीचे मेरी कॉन्फ़िगरेशन फ़ाइल है। और यह इस प्रकार है के रूप में:

#my primary account 
Host {account1} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

#for NPR_HPTG account 
Host {account2} 
    User git 
    HostName gitlab.com 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

और मैं दो Gitlab खाता रही है, इसलिए

[email protected]:{account_1}/repo1.git 
[email protected]:{account_2}/repo1.git 

फिर भी, मैं account_2 को एक्सेस नहीं कर सकता।

इससे पहले, मेरे पास यह दूसरा गिटलैब खाता होने से पहले, मैं कुंजी को account1 पर This सेट किए बिना अपलोड कर सकता हूं। लेकिन अब इसका पालन करके, अंत में, मैं [email protected]:{account_2}/repo1.git पर धक्का दे सकता था। और मैं पुश/पुल करने के लिए TortoiseGit का उपयोग कर रहा हूं।

उत्तर

16

बस एक %HOME%/.ssh/config फ़ाइल में प्रत्येक निजी SSH कुंजियों की घोषणा:

Host gitlabuser1 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa1 

Host gitlabuser2 
    User git 
    Hostname {hostname} 
    PreferredAuthentications publickey 
    IdentityFile C:/Users/{username}/.ssh/id_rsa2 

कि SSH कुंजियों के अपने सेट supposes हैं:

%HOME%/.ssh/id_rsa1 ; %HOME%/.ssh/id_rsa1.pub 
%HOME%/.ssh/id_rsa2 ; %HOME%/.ssh/id_rsa2.pub 

फिर आप क्लोन/पुश के लिए यूआरएल का उपयोग कर सकते/खींच :

gitlabuser1:yourRepo1 
gitlabuser2:yourRepo2 

सुनिश्चित करें कि आपके CMD सत्रहै बनाओपरिभाषित, आमतौर पर %USERPROFILE% (जो git-cmd.bat के साथ आपके लिए किया जाता है)

आपके पास एक विस्तृत प्रक्रिया in this blog post है।

+0

मैं बेकार हूं कि केवल 'पहचानफाइल id_rsa2' लिखना' '_/.ssh /' से 'id_rsa2' फ़ाइल को चुनना चाहिए, इस प्रकार सही चीज स्वचालित रूप से करनी चाहिए। मैं कोशिश करता हूँ और देखता हूँ। – kostix

+0

@ कोस्टिक्स दिलचस्प। मैं आमतौर पर हमेशा पूरा पथ निर्दिष्ट करता हूं। – VonC

+0

एचटीई 'gitlabuser1' के लिए सही प्रारूप क्या होना चाहिए। क्या यह ऐसा कुछ है: '[email protected]: my_username'? – 2342G456DI8

संबंधित मुद्दे