2012-04-19 13 views
20

मैं आधार अमेज़न अमी Linux- मैं जेनकींस स्थापित किया है, लेकिन मैं निम्न त्रुटि दिया हूँ जब मैं GitHub से रेपो खींचने के लिए जाना के साथ EC2 पर हूँ:जेनकींस/हडसन GitHub रेपो से कनेक्ट नहीं कर

Building in workspace /var/lib/jenkins/workspace/build social 
Checkout:build social//var/lib/jenkins/workspace/build social - [email protected] 
Using strategy: Default 
Cloning the remote Git repository 
Cloning repository origin 
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:adulion/.git 
hudson.plugins.git.GitException: Could not clone [email protected]:adulion/.git 
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:245) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1117) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1059) 
    at hudson.FilePath.act(FilePath.java:832) 
    at hudson.FilePath.act(FilePath.java:814) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1059) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1218) 
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581) 
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470) 
    at hudson.model.Run.run(Run.java:1421) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:238) 
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:adulion/.git /var/lib/jenkins/workspace/build social" returned status code 128: 
stdout: Cloning into /var/lib/jenkins/workspace/build social... 

stderr: Host key verification failed. 
fatal: The remote end hung up unexpectedly 

मैंने वर्तमान उपयोगकर्ता के लिए एक कुंजी जेनरेट की है जिसने जेनकींस स्थापित किए हैं और गिट कमांड लाइन का उपयोग करके रेपो क्लोन करने में कामयाब रहे हैं लेकिन जेनकींस नहीं कर सकते हैं।

मैं /var/lib/jenkins/.ssh

मैं ज्ञात होस्ट करने के लिए GitHub जोड़ लिया है में ~/.ssh फ़ाइलों की नकल की है और मैं कोशिश करने के लिए समाधान के समाप्त हो गया है। किसी को पता है कि मैं गलत कहां जा रहा हूं? क्या जेनकींस को सार्वजनिक कुंजी दिखाने के लिए एक तरीका है जिसका उपयोग यह कर रहा है और यदि मैं सही उपयोग कर रहा हूं तो मैं डीबग कर सकता हूं?

मैं रेपो क्योंकि इसके लिए एक निजी रेपो

उत्तर

29

त्रुटि प्रतीत होती है: होस्ट कुंजी सत्यापन विफल।

आप जेनकींस उपयोगकर्ता के रूप में अपने जेनकींस मेजबान में प्रवेश करें और चलाना चाहिए:

ssh [email protected] 

फिर होस्ट कुंजी के बारे में शीघ्र करने के लिए हाँ जवाब। यह केवल एक बार किया जाना चाहिए।

वैकल्पिक रूप से आप ~ जेनकींस/.ssh/config में "StrictHostKeyChecking no" जोड़ सकते हैं।

+2

'ssh git @ github.com' मेजबान कुंजी के बारे में संकेत नहीं देता है, इसके बजाए _PTY आवंटन अनुरोध को प्रतिबिंबित करने से चैनल 0/Hi $ {नाम}! आपने सफलतापूर्वक प्रमाणीकृत किया है, लेकिन गिटहब शैल एक्सेस प्रदान नहीं करता है। _। हालांकि, 'StrictHostKeyChecking no', एक आकर्षण की तरह काम किया। –

+0

मुझे लगता है * ज्ञात_होस्ट में जिथब जोड़ना भी काम करेगा? ssh-keyscan -H http://github.com >> ~/.ssh/known_hosts – paulecoyote

+0

यदि आपकी जेनकिंस हेडलेस है, तो एक अन्य सुविधाजनक तरीका ssh [email protected] को किसी अन्य उपयोगकर्ता से है, और फिर .ssh/know_hosts की प्रतिलिपि बनाएँ उदाहरण के लिए फ़ाइल ~ जेनकींस /। एसएसएच /। यह भी सुनिश्चित करें कि आपने जेनकींस को दिखाया है: जेनकिन्स/जेएसकिन्स में सभी फाइलों के लिए जेनकींस –

5

मैं कई GitHub खजाने की जाँच के लिए एक एकल जेनकींस मशीन का उपयोग कर रहा का नाम हटा दिया और इसी तरह की समस्या नहीं थी जब उसे सेट अप। मैं जो कर रहा था वह जेनकींस के लिए एक एसएसएच कॉन्फ़िगरेशन फ़ाइल कॉन्फ़िगर कर रहा था ताकि एसएसएच स्वचालित रूप से पता चले कि कौन सी आईडी फ़ाइल प्रत्येक भंडार के साथ संबद्ध हो।

/var/lib/jenkins/.ssh/config: अंत में

[email protected]:user/repo.git 

,:

Host github-ABC 
    HostName github.com 
    User git 
    IdentityFile /var/lib/jenkins/.ssh/id_rsa_ABC 

स्रोत कोड के प्रबंधन के तहत जेनकींस परियोजना config में, मैं भंडार नाम के रूप में प्रयोग किया जाता है इस मैं जीएसयूबी रिपोजिटरी में एक तैनाती कुंजी के रूप में एसएसएच पब्लिक कुंजी का उपयोग करता हूं।

+0

मैं कहीं कॉन्फ़िग फ़ाइल को लोड करने की आवश्यकता है? –

+0

नहीं, कनेक्ट होने पर एसएसएच स्वचालित रूप से ~/.ssh/config को देखना चाहिए। [दस्तावेज़ीकरण] (http://linux.die.net/man/5/ssh_config) – mpdaugherty

5

वह निम्नलिखित मुझे मदद मिली:

लॉग इन जेनकींस

तहत
sudo su jenkins 

कुंजी जेनकींस .ssh फ़ोल्डर

cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/ 

Raname करने के लिए अपने GitHub कुंजी कॉपी

mv id_rsa_github id_rsa 
mv id_rsa_github.pub id_rsa.pub 
4

1) उपयोगकर्ता int स्विच करें अपने जेनकींस खाता ओ

su jenkins 

2) किसी पासफ़्रेज़

3) ssh [email protected]

वह मेरे लिए पूरी तरह से काम किया है बिना कुंजी बनाएँ।

यदि आप जेनकींस के रूप में प्रवेश आप

ssh मैं ~/.ssh/id_rsa Git @ GitHub कर सकते हैं आप, जेनकींस खाते के लिए पासवर्ड बनाने के लिए यदि ऐसा है तो sudo passwd jenkins

0

का उपयोग पड़ सकता है। कॉम

जहां ~/.ssh/id_rsa path/to/अपने/ssh/कुंजी है और यह पासवर्ड के लिए संकेत और known_hosts में जोड़ देगा फाइल

-1

आप को जेनकींस की ssh कुंजी जोड़ने की जरूरत आप उपयोगकर्ता को github।

Generate ssh key

जाएं:

Github->Settings(Top right)->SSH Keys(Left Pane)->Add SSH Key