2012-04-17 10 views
11

मैंने अभी अपना पहला जेनकिन्स गुलाम स्थापित किया है। मैं निर्माण चलाता हूं, और मैंने एसएसएच कुंजी के साथ समस्याओं को मारा। मास्टर जेनकींस सर्वर उपयोगकर्ता 'जेनकींस' के तहत चल रहा है। मैंने एसएसएच कुंजी स्थापित की है जैसे कि मैं बिना किसी पासवर्ड के मास्टर से दास तक एसएसएच कर सकता हूं।जेनकींस - गुलाम नोड से क्लोन गिट करने में असमर्थ। एसएसएच कुंजी

उदा। मास्टर से:

[email protected]:~$ ssh slave 
Last login: Tue Apr 17 10:30:22 2012 from masterjenkins.com 
$ whoami 
jenkins 

तो यह साबित करता है कि दास नोड 'जेनकिन्स' उपयोगकर्ता के तहत भी चल रहा है। (मैंने जेनकिन्स @ दास से रिमोट गिट सर्वर तक सार्वजनिक एसएसएच कुंजी की प्रतिलिपि बनाई है)। और मैं दास से मैन्युअल रूप से Git क्लोन जारी करने के लिए कर रहा हूँ, लेकिन जब मैं गुरु से निर्माण शुरू मैं संदेशों के इन प्रकार प्राप्त: तो यह अभी भी इशारा कर रहा है कि मेरे SSH कुंजियों सेट नहीं हैं

ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:abc 
hudson.plugins.git.GitException: Could not clone [email protected]:abc 
Caused by: hudson.plugins.git.GitException: Error performing command: git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build 
Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/ 
Host key verification failed. 
fatal: The remote end hung up unexpectedly 
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/ 
Host key verification failed. 
fatal: The remote end hung up unexpectedly 
Trying next repository 
ERROR: Could not clone repository 
FATAL: Could not clone 

सही ढंग से ऊपर। क्या कोई मुझे बता सकता है कि मुझे कहां कॉपी करने की आवश्यकता है?

बहुत धन्यवाद, एनएस

+1

मेजबान कुंजी सत्यापन भी विफल रहता है यह इंगित करता है कि आपके जेनकिंस उपयोगकर्ता ने कभी भी उस सर्वर में कभी नहीं सोचा है और आपने मेजबान कुंजी स्वीकार नहीं की है, सीएलआई से एसएसआई से प्रयास करने के लिए जेनकिंस उपयोगकर्ता को यह सुनिश्चित करने के लिए प्रयास करें कि यह काम करता है, और स्वीकार करता है मेजबान कुंजी – Doon

+0

@ डून यह समस्या हो सकती है। मैंने मूल रूप से सोचा था कि आप उसी मशीन से एसएसएच करने की कोशिश कर रहे थे कि जेनकिंस क्लोन करने की कोशिश कर रहा है। –

+0

बेस्टर्ड मिला! आपके सभी इनपुट के लिए धन्यवाद। मैंने जेनकिंस को गुलाम पर चलाने का प्रयास करने की कोशिश की और चिपकाया: गिट क्लोन - प्रोग्रेस -ओ मूल गिट @ होस्ट: एबीसी/var/lib/जेनकींस/वर्कस्पेस/एबीसी और यह निकला कि मेरे पास कुछ अपमानजनक कुंजी थी इन /root/.ssh/known_hosts इन्हें हटाने और गिट रेपो से कनेक्ट करने के बाद, यह काम किया! – nonshatter

उत्तर

5

क्लोन यूआरएल यह प्रतीत होता है कि आप दो अलग अलग प्रमाणीकरण तरीकों अप मिश्रण कर रहे हैं के आधार पर। आप मेजबान में SSH को उपयोगकर्ता gitjenkins के रूप में होस्ट करने की कोशिश कर रहे हैं। आम तौर पर जब आप अपने स्वयं के जीआईटी भंडारों को होस्ट करते हैं और गिट @ सेरनावैम के साथ क्लोन करते हैं: reponame आप gitolite की तरह कुछ उपयोग करते हैं।

क्या आपने गिटोलाइट की तरह कुछ भी सेट किया था?

जेनकिंस उपयोगकर्ता के बजाय इस तरह ssh'ing आज़माएं।

ssh [email protected] 

फिर देखें कि वह क्या लौटाता है। यह [email protected]:abc के साथ एक एसएसएच अधिक है जो आप कर रहे हैं।

आप फ्लॉप सेटअप अपने सर्वर मशीन पर कुछ और है, तो अपने क्लोन यूआरएल को [email protected]:pathtorepo

अद्यतन

/home/git/.ssh/authorized_keys

बदलते हैं तो इस तरह एक प्रवेश होना चाहिए: (यह सभी पर है एक पंक्ति)

# gitolite start 
command="/home/git/bin/gl-auth-command jenkins",no 
-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAt3+od84Gc9NBVrVb3MKjekHcBDwXXONnVYMNVpuRadoz/FPJTkOIxozKVPJDPI670O252giYpF59sOKqAJL0xEVUrhq8cDFuFwQsSAp0ed1kp/GRxx+pwytL58rcVJEHAy2DkD1z5HlNaZyvIxQyfLTnYfuL1Hx6Qe7dal7mXO0= keycomment 
# gitolite end 

भंडार अनुमति जोड़ें gitolite में जेनकींस के आयनों: (आप एक ही मशीन है कि अपने खजाने होस्ट कर रहा है पर क्लोन करने के लिए हो सकता है, gitolite उपयोगकर्ता के रूप में)

git clone [email protected]:gitolite-admin 
cd gitolite-admin 
cd conf 
vi gitolite.conf 

अब 'एबीसी' के लिए प्रवेश पाते हैं या अगर यह 'नहीं करता है एक जोड़ने टी मौजूद

repo abc 
    RW+   = jenkins 

अब प्रतिबद्ध और धक्का बदलता है

git commit -a -m "Adding user jenkins to repo abc" 
git push 

अब आप अपने ssh [email protected] फिर से देखने के लिए अगर gitolite अपने नए अनुमतियों के बारे में बताता है।

+0

हाय, क्षमा करें हाँ मैं यह जोड़ना भूल गया कि हम अपने गिट उपयोगकर्ताओं को प्रबंधित करने के लिए गिटोलाइट का उपयोग करते हैं। मास्टर से दास से ssh'ing ssh git @ गुलाम के रूप में बस एक पासवर्ड के लिए संकेत देता है। एक चीज जो मुझे परेशान कर रही है वह यह है कि मैं आसानी से यह देखने का आसान तरीका नहीं ढूंढ पाया कि जेनकिन्स दास के रूप में कौन चलती है। एक बार दास पर लॉग इन करने के बाद, मैंने एक ssh-keygen किया और फ़ाइलों को डिफ़ॉल्ट स्थान में सहेजा जो /home/jenkins/.ssh/id_rsa था। मैंने फिर सार्वजनिक कुंजी को गिटोलाइट की प्रतिलिपि बनाई। – nonshatter

+0

@nonshatter इसका मतलब है कि गिटोलाइट या कुछ और सही ढंग से सेटअप नहीं है। क्या आप वाकई अधिकृत सर्वर को अपने सर्वर पर सही तरीके से सेटअप कर रहे हैं? मैं अपने गिटोलाइट उदाहरण को प्रबंधित करने के लिए गिटलैब का उपयोग करता हूं। जब तक आप पासवर्ड के बिना सफलतापूर्वक ssh git @ होस्ट कर सकते हैं, तब तक आपके क्लोन काम नहीं करेंगे। जांच करने वाली पहली बात यह है कि 'गिट' उपयोगकर्ता के लिए सर्वर पर अधिकृत_की और सही सार्वजनिक कुंजी के साथ आपके जेनकिन्स नाम। –

+0

दास से: '$ ssh Git @ मेजबान PTY आवंटन अनुरोध चैनल पर विफल रही है 0 हैलो जेनकींस, इस gitolite v2.1-31-gf0cedeb Git 1.7.0.4 पर चल gitolite config आप निम्नलिखित पहुँच देता है : @R_ @W_ \t परीक्षण आरडब्ल्यू \t एबीसी बंद करने के लिए कनेक्शन बंद। ' – nonshatter

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