2011-01-28 12 views
5

मैं अपने Mercurial भंडार के लिए एसएसएच publickey प्रमाणीकरण का उपयोग कर रहा हूँ। तो मेरे पास है:एकल एचजी भंडार के लिए एकाधिक एसएसएच पहचान कैसे सेट करें?

[ui] 
ssh = ssh -i ~/.ssh/id_rsa -C 
मेरी .hgrc में

। यह ठीक काम करता है और मुझे एक एसएसएच-प्रमाणीकृत रेपो को धक्का/खींचने की अनुमति देता है। हालांकि, मैं एक और रेपो को पुश/पुल करने में सक्षम होना चाहता हूं जिसके लिए एक अलग पहचान की आवश्यकता है। मैं अपनी .hgrc फ़ाइल को कैसे कॉन्फ़िगर कर सकता हूं ताकि पहचान किसी विशेष पथ से जुड़ी हो। मुझे लगता है मैं कुछ ऐसा चाहते हैं: ssh एजेंट:

[ui] 
one.prefix = someserver.com 
one.ssh = ssh -i ~/.ssh/id_rsa -C 
two.prefix = otherserver.com 
two.ssh = ssh -i ~/.ssh/otherid_rsa -C 

उत्तर

3

आप ssh के स्वयं के उपकरण का उपयोग करते हैं।

$ eval $(ssh-agent) 
$ ssh-add ~/.ssh/id_rsa 
$ ssh-add ~/.ssh/otherid_rsa 

तो फिर तुम सब पर अपने .hgrc के [ui] खंड में ssh संबंधित की पहचान कुछ भी जरूरत नहीं है।

वैकल्पिक रूप से तुम कर सकते हो:

[ui] 
ssh = ssh -i ~/.ssh/id_rsa -i ~/.ssh/otherid_rsa -C 

लेकिन ssh-एजेंट इतने सारे रास्ते में उपयोगी है यह यह आपके लॉगिन स्क्रिप्ट डाल और यह एक दिन फोन करने के लायक है।

+1

मुझे लगता है कि यह 'ssh = ssh -i ~/.ssh/id_rsa -i ~/.ssh/otherid_rsa -C' है अन्यथा हमें एक एसएसएच उपयोग त्रुटि मिलती है। –

+0

निश्चित रूप से। धन्यवाद। –

8

अपने ~/.ssh/config में, जोड़ने (hg और इंटरैक्टिव उपयोग सहित)

Host someserver.com 
IdentityFile ~/.ssh/id_rsa 

Host otherserver.com 
IdentityFile ~/.ssh/otherid_rsa 

और किसी को भी ssh का उपयोग कर मेजबानों someserver.com या otherserver.com से कनेक्ट करने के लिए निर्दिष्ट पहचान फ़ाइलों का उपयोग करेगा।

अन्य विकल्पों के लिए ssh_config देखें।

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

  • कोई संबंधित समस्या नहीं^_^