2011-04-09 13 views
17

कृपया निराशाजनक उपक्रमों से क्षमा करें क्योंकि मैंने इस सेट को सही तरीके से प्राप्त करने का प्रयास किया है (संभवतः और मेरी अज्ञानता के कारण सबसे अधिक संभावना है, लेकिन इसके कारण भी पूरी तरह से और संक्षिप्त दस्तावेज की कमी)।गिट सर्वर निराशा (गिटोसिस, गिटोलाइट, आदि)

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

या तो गिटोसिस स्थापित करने की कोशिश करते समय (मुझे लगता है कि यह https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-convention प्रति गिट समुदाय के लिए बहिष्कृत है) या गीटोलाइट, ऐसा लगता है जैसे ही मैं इसे सेट करता हूं मुझे बहुत सावधान रहना पड़ता है क्योंकि ऐसा लगता है कि सब कुछ संतुलित है टूथपिक्स पर

एक गिट सर्वर स्थापित करने के लिए मेरे नवीनतम प्रयास में मेरे लैपटॉप से ​​सर्वर पर मेरी सार्वजनिक कुंजी (benny.pub) को स्थानांतरित करना, उस सार्वजनिक कुंजी का उपयोग करके सबकुछ सेट करना और रेपो और अनुमतियां सेट अप करने के लिए कॉन्फ़िगरेशन को खींचना शामिल था। मुझे तब एहसास हुआ कि मैं एक और पीसी पर विकसित करना चाहता हूं इसलिए मैंने एक नई कुंजी ([email protected]) बनाई और benny.pub को [email protected] में बदल दिया जो स्पष्ट रूप से चीजों को खराब कर देता था। यह वह जगह है जहां मुझे पता है कि मैं नाम बदलकर गूंगा था।

लंबे समय से घुमावदार वर्णन के बाद मेरा प्रश्न यह है: मैं सुरक्षा बनाए रखने के दौरान एकाधिक मशीनों से एकाधिक डेवलपर्स लॉग इन करने की क्षमता के साथ एक मजबूत स्व-होस्टेड गिट सर्वर कैसे स्थापित कर सकता हूं? ऐसा करने के लिए एक सिद्ध तकनीक होनी चाहिए (गिटोलाइट शायद 4-5 अलग-अलग तरीकों का वर्णन करता है ... निराशाजनक) क्योंकि मुझे यकीन है कि मैं एकमात्र ऐसा करने की कोशिश नहीं कर रहा हूं। शायद मेरी टीम के लिए गिट सही नहीं है?

किसी भी मदद की बहुत सराहना की जाती है!

+1

"से-क्लाइंट विधि" के साथ गिटोलाइट लें: http://stackoverflow.com/questions/5041067/gitolite-git-clone-error/5041898#5041898। एक जादू की तरह काम करता है। – VonC

+1

इसके अलावा, मेरी राय में यह लैपटॉप और डेस्कटॉप जैसे सिस्टम के बीच एसएसएच कुंजी साझा करने के लिए एक भयानक बात नहीं है। जब तक प्रत्येक एक सुरक्षित है, और सबसे महत्वपूर्ण बात यह है कि कुंजी पासफ्रेज़ है। –

उत्तर

15

मेरे अनुभव से है पर सर्वर पर Git के बारे में अनुभाग, आपको केवल एक के साथ एक SSH सर्वर है एकल गिट खाता/लॉगिन करें कि आप अपनी सार्वजनिक कुंजी में से किसी एक का उपयोग करने के लिए कनेक्ट करने में सक्षम हैं। एसएसएच का उपयोग करके गिटोलाइट स्थापित करें (आपके क्लाइंट से सर्वर & मूल सेटअप करता है) और आपके डेवलपर आपको अपनी सार्वजनिक कुंजी भेजते हैं। इन कुंजियों को अपने ~ में गिटोलाइट-एडमिन रिपोजिटरी में जोड़ें और पुश करें।

डेवलपर को पहली जगह में एक से अधिक कीपैयर की आवश्यकता क्यों होती है, भले ही एकाधिक मशीनों का उपयोग किया जाए? ऐसे मामले न तो प्रभावित होंगे कि एसएसएच प्रमाणीकरण कैसे संभालता है और न ही गिटोलाइट प्राधिकरण को कैसे नियंत्रित करता है: वे अभी भी एसएसएच कुंजी हैं।

  • एक डेवलपर, कई keypairs (Git के लिए एक, कुछ अन्य सर्वर के लिए एक और) का उपयोग उन्हें जटिलता संभालने दें और वे का उपयोग प्रत्येक कुंजीयुग्म/सर्वर संयोजन के लिए ~/.ssh/config में एक प्रविष्टि बनाने के लिए उन्हें सलाह देने के लिए किया है।

  • एक डेवलपर के लिए इस्तेमाल किया हर मशीन पर एक अलग कुंजी युग्म है, तो gitolite समूहों को जोड़ सकते हैं कई सार्वजनिक कुंजी:

@agross = agross-1 agross-2 
+1

अब एसएसएच के माध्यम से गिटोलाइट स्थापित करने का विकल्प नहीं है। मैं गिटोलाइट + गिटलैब (गिटोलाइट के लिए अच्छा यूआई) के लिए इस आलेख की अनुशंसा करता हूं: http://blog.phusion.nl/2012/04/21/tutorial-setting-up-gitlab-on-debian-6/ ध्यान दें कि यह है डेबियन के लिए, लेकिन अन्य सिस्टमों पर समान होना चाहिए – glebm

+0

@glebm आपका क्या मतलब है "एसएसएच के माध्यम से गिटोलाइट स्थापित करने का कोई विकल्प नहीं है"? यह डिफ़ॉल्ट प्रोटोकॉल है। – webXL

+0

@webXL वह * इंस्टॉलेशन * के बारे में बात कर रहा था, * इंस्टॉल नहीं होने के बाद * गिट सर्वर तक पहुंच रहा था। आज तक, गिटोलाइट एसएसएच के माध्यम से स्थापित करने का साधन प्रदान नहीं करता है। हालांकि, आप अपने सर्वर में स्वयं एसएसएच कर सकते हैं। –

1

मैं सर्वर पर खाता रखने वाले प्रत्येक डेवलपर के साथ डेबियन का उपयोग कर रहा हूं। मैं निजी कुंजी लॉगिन के साथ एसएसएच का उपयोग करें। आखिर में एक डेवलपर को एसएसएच: //[email protected]/git-repo/repo.git जैसे यूआरएल का उपयोग करना होगा या किसी भी मामले में रेपो

+3

आपको प्रत्येक डेवलपर के लिए लॉगिन करने की आवश्यकता नहीं है। एसएसएच/गिटोलाइट एक ही गिट @ सर्वर लॉगिन के पीछे कई लोगों को संभाल सकता है, जिनमें से सभी को अपनी स्वयं की एसएसएच सार्वजनिक कुंजी द्वारा पहचाना जाता है। –

+0

@Alexander, क्या आप कृपया वर्णन कर सकते हैं कि कैसे? – Benny

+2

@ बेनी यह बहुत आसान है: एसएसएच केवल प्रमाणीकरण करता है, गिटोलाइट केवल प्राधिकरण और गिट प्रोटोकॉल को संभालता है। एक देव की सार्वजनिक कुंजी 'git' उपयोगकर्ता की' ~/.ssh/autorized_keys' में पंजीकृत है। एसएसएच देव को 'गिट' खाते से लॉग इन करने/अधिकृत करने की अनुमति देगा। '~/.ssh/autorized_keys' में चलाने के लिए" खोल "भी शामिल है, जो उपयोगकर्ता नाम के साथ पैरामीटर के रूप में गिटोलाइट की मुख्य स्क्रिप्ट को संदर्भित करता है। इस स्क्रिप्ट में प्राधिकरण भागों (यह गिटोलाइट की कॉन्फ़िगरेशन फ़ाइल पढ़ता है) शामिल है और रेपो एक्सेस को भी संभाल देगा। –

2

पर गिट के साथ बातचीत करें, मैं काम पर एक गिटोस कॉन्फ़िगरेशन बनाए रखता हूं, और जब एक डेवलपर के पास एकाधिक एसएसएच कुंजी होती है, तो मुझे बस इतना करना है कि इन सभी चाबियों को उसी keydir/user.pub फ़ाइल में रखा जाए।

तो अपनी सभी चाबियों को keydir/benny.pub में संयोजित करें और आप सभी सेट हो जाएं।

+1

मुझे समझ में नहीं आता कि यह कैसे काम कर सकता है।जब मैं कोशिश करता हूं, तो यह लिखा गया है: "चेतावनी: एक पबकी फ़ाइल में केवल एक पंक्ति (कुंजी) हो सकती है; user.pub को अनदेखा कर रहा है"। तो नहीं, यह काम नहीं कर सकता है। – tito

+0

क्या आप गिटोलाइट या गिटोसिस का उपयोग कर रहे हैं? मेरा जवाब केवल गिटोसिस के लिए है, जो हम काम पर करते हैं। (गिटोलाइट अलग-अलग काम करता है और अलग-अलग फाइलों में कई चाबियाँ चाहता है।) – adl

2

कुछ खुला स्रोत Git एक वेब के साथ समाधान की मेजबानी कर रहे हैं

  • 012: खजाने बनाने और उन (GitHub:FI की तरह) जोड़ने ... हालांकि मैं सीमित पहुँच के बारे में पता नहीं है के लिए आधारित यूआई(रूबी)
  • InDefero (PHP)
  • Girocco (पर्ल, शेल स्क्रिप्ट)

HTH

0

मुझे लगता है कि समस्या यह है कि आप SSH ग्राहक (विंडोज या लिनक्स संस्करण) नहीं मिल रहा है कुंजी फाइल मैं एक ही समस्या थी और इस तरह से हल:।

  • मेरी नोटबुक में, कुंजी फ़ाइल ([email protected]) ~/.ssh में फ़ोल्डर (जहां ~ घर फ़ोल्डर है उत्पन्न खिड़कियों संस्करण% गृह% है

    IdentityFile ~/.ssh/[email protected]

हर स्थान मैं अपने Git सर्वर का उपयोग करना चाहते हैं, मैं सिर्फ में उन फ़ाइलों को कॉपी: env)

  • मैं निम्नलिखित सामग्री के साथ ~/.ssh में एक फ़ाइल नाम config जोड़ा मेरा% होम% फोल der

    तुम भी कॉन्फ़िग फ़ाइल में इस तरह कुछ बातें रख सकते हैं:

    IdentityFile /d/identity.key 
    IdentityFile /e/identity.key 
    IdentityFile /f/identity.key 
    IdentityFile /.../identity.key 
    

    तो config हटाने योग्य मीडिया में चाबी के लिए दिखेगा।

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