2012-06-19 17 views
42

अपने .ssh निर्देशिका 30 चाबियाँ (15 निजी और 15 सार्वजनिक)जीआईटी और एसएसएच, किस कुंजी का उपयोग किया जाता है?

, GIT में कहाँ है जो एक चेक दिए गए दूरस्थ रेपो से कनेक्ट करने के लिए किया जाता है कर सकते हैं कहते हैं?

+4

जो कोई भी "बंद" करने के लिए मतदान करता है, यह प्रश्न - सीधे उसी कारण से प्रोग्रामिंग से संबंधित है, जीआईटी के बारे में प्रश्न – JAM

+1

तर्कसंगत रूप से ... यह वास्तव में एक सुपर-उपयोगकर्ता प्रश्न है, यहां मुद्दा गिट नहीं है, लेकिन जिस प्लेटफ़ॉर्म पर चल रहा है। आप समस्या के लिए "गिट में" जांच नहीं सकते हैं, क्योंकि गिट परवाह नहीं है, यह केवल एसएसएच का उपयोग करने के तरीके से संबंधित है और यह कैसे कॉन्फ़िगर किया गया है। क्या आप एसएसएच एजेंट का उपयोग करते हैं, किसी भी प्रकार की कुंजी प्रबंधन प्रणाली, आप किस ऑपरेटिंग सिस्टम का उपयोग करते हैं, किस संस्करण, इत्यादि? – Arafangion

उत्तर

41

.ssh/config फ़ाइल में निम्न प्रविष्टि समस्या का हल

host git.assembla.com 
    user git 
    identityfile ~/.ssh/whatever 

कहाँ ~/.ssh/whatever करने के लिए एक रास्ता है अपनी निजी कुंजी

साथ ही, उपयोगकर्ता और मेजबान

git push [email protected]:repo_name.git 
     ^__ ^_______________ 
     user host 
+0

इसलिए यदि मैं एक अलग मेजबान के लिए एक और एसएसएच कुंजी का उपयोग करना चाहता था, तो क्या मैं इसे पहले के बाद दोहरा दूंगा ?? क्या पहचानफाइल पहले मेजबान से पहले संबंधित है? – MikeSchem

+0

ठीक है, हाँ, ऐसा लगता है कि यह मामला https://www.cyberciti.biz/faq/force-ssh-client-to-use-given-private-key-identity-file/ – MikeSchem

5

git कनेक्ट करने के लिए बस ssh का उपयोग करता है, यह रिमोट होस्ट से कनेक्ट करने के लिए उपयोग की जाने वाली किसी भी कुंजी ssh का उपयोग करेगा। विवरण के लिए ~/.ssh/config फ़ाइल देखें; उपयोग करने के लिए निजी कुंजी निर्दिष्ट करने के लिए host ब्लॉक IdentityFile निर्देश का उपयोग करता है। ssh_config(5) मैनपेज में पूर्ण विवरण हैं।

+0

हम्म .. फ़ाइल मेरे सिस्टम पर मौजूद नहीं है। इसे होना चाहिए? – JAM

+1

@ जेएएम आप किस ओएस का उपयोग कर रहे हैं? साथ ही, कभी-कभी कॉन्फ़िगरेशन फ़ाइल '/ etc/ssh/ssh_config' –

+0

पर है मै मैकोज़ पर हूं।मिली/etc/ssh_config' जो टिप्पणी प्रविष्टियों से भरा फ़ाइल प्रतीत होता है – JAM

6

जब तक यह .ssh/config पर निर्दिष्ट नहीं है, तो यह डिफ़ॉल्ट निजी कुंजी फ़ाइल का उपयोग करेगा।

प्रोटोकॉल संस्करण के आधार पर डिफ़ॉल्ट फ़ाइल ~/.ssh/id_rsa या ~/.ssh/id_dsa या ~/.ssh/identity है।

1

से उठाया जा सकता है रिमोट सर्वर पर, sshd_config फ़ाइल संपादित करें और लॉगलेवल को INFO से VERBOSE में बदलें और ssh को पुनरारंभ करें।

अब आपकी लॉग फ़ाइल प्रत्येक उपयोगकर्ता को प्रमाणीकृत करने के लिए उपयोग की जाने वाली कुंजी के फिंगरप्रिंट को रखेगी।

उबंटू पर, ये फ़ाइलें हैं:

/etc/ssh/sshd_config 
/var/log/auth.log 

लेकिन वे एक distro पर अलग हो सकता है। बस उनके स्थान के लिए Google (कुछ उपयोग/var/log/उदाहरण के लिए सुरक्षित)।

31

वर्बोज़ मोड, उर्फ ​​ssh -v [email protected] में एसएसएच निष्पादित करने से, डीबगिंग जानकारी का एक बड़ा भार प्रिंट होगा, जिसमें यह भी शामिल है कि यह किस कुंजीफाइल को लॉगिन के लिए प्रयास कर रहा है।

debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /home/user/.ssh/id_rsa 
debug1: Server accepts key: pkalg ssh-rsa blen 332 
debug1: read PEM private key done: type RSA 
debug1: Authentication succeeded (publickey). 

अब आप Git के अपने SSH help page, ssh -vT [email protected] आप इस सवाल का जवाब दे सकते हैं में चरण 4 के साथ इस गठबंधन, अगर।

नोट: आप कमांड निष्पादन के दौरान ssh को बताने के लिए -i स्विच का उपयोग भी कर सकते हैं, जिसका उपयोग करने के लिए keyfile।

+0

यह भी देखें: http://stackoverflow.com/questions/18845799/show-ssh-key-file-in-git-bash – Sharadh

+0

आप इस तरह की मुख्य फ़ाइल खोजने के लिए ssh कमांड के मानक त्रुटि आउटपुट को भी grep कर सकते हैं: 'ssh -vv user @ host 2>> (grep पेशकश) '- यह चीजों को आसान बना देगा। अंतिम फ़ाइल सार्वजनिक कुंजी होना चाहिए। उदाहरण के लिए: 'डीबग 1: आरएसए सार्वजनिक कुंजी की पेशकश:/उपयोगकर्ता/मैकबुकप्रो/.ssh/id_rsa' –

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