जेनकिंस गिट रिपॉजिटरी से कनेक्ट करने में विफल रहता है


11

मैं git रिपॉजिटरी url को इस तरह से कॉन्फ़िगर नहीं कर सकता, कि जेनकींस इसे एक्सेस कर सके।

"प्रोजेक्ट> कॉन्फ़िगर करें> स्रोत कोड प्रबंधन" के तहत मैंने रिपॉजिटरी URL को "git @ store: repositories / testproject.git" पर सेट किया

मुझे यह त्रुटि मिली:

Failed to connect to repository : Command "/usr/bin/git -c core.askpass=true ls-remote -h git@store:repositories/testproject.git HEAD" returned status code 128:
stdout: 
stderr: Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,password). 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

उस URL के साथ पहुँच एक शेल पर काम करती है:

jenkins@dilbert:~$ /usr/bin/git -c core.askpass=true ls-remote -h git@store:repositories/testproject.git
git@store's password: 
4fd35a4f528e2f2921a52cfd03918b7cbde3d253    refs/heads/master

मुझसे पासवर्ड मांगा जाता है और यह काम करता है।

मैंने जेनकिन्स में क्रेडेंशियल्स के लिए समान पासवर्ड को "git /" से जोड़ा और मैंने "git @ store /" को भी आज़माया। किसी ने काम नहीं किया।

कृपया ध्यान दें, कि यह जीथूब के बारे में नहीं है, बल्कि एक स्थानीय गिट रिपॉजिटरी के बारे में है।

अपडेट करें:

जंकिन्स मास्टर से बिल्ड स्लेव में पब की कुंजी को जोड़ने से कॉन्फ़िगरेशन को काम करने में मदद मिली:

ssh-copy-id jenkins@dilbert

अब फेल हो रहे हैं:

 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.origin.url git@store:repositories/testproject.git # timeout=10
Fetching upstream changes from git@store:repositories/testproject.git
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git -c core.askpass=true fetch --tags --progress git@store:repositories/testproject.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from git@store:repositories/testproject.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:735)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:983)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1016)
    at hudson.scm.SCM.checkout(SCM.java:484)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
    at hudson.model.Run.execute(Run.java:1751)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git -c core.askpass=true fetch --tags --progress git@store:repositories/testproject.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

स्टोर जेनकिंस मास्टर है, लिबर्टी बिल्ड गुलाम है। ssh गुरु से दास का काम करता है।

jenkins@store:~$ ssh dilbert uptime
 16:06:21 up 3 days, 18:53, 13 users,  load average: 0,31, 0,38, 0,50

किसी भी विचार यह कैसे डिबग करने के लिए?

जवाबों:


5

प्रमाणीकरण ssh के माध्यम से काम करता है। क्या आपने जेनिटिक्स उपयोगकर्ता की सार्वजनिक ssh-key को अपने git-server पर git-user में जोड़ा है?

मुझे बताएं कि क्या आपको ssh- ऑथेंटिकेशन सेट करने के लिए निर्देश की आवश्यकता है और मैं इस पोस्ट को यहां संपादित करूंगा।

/ संपादित करें:

खुशी है कि आप इसे चला रहे हैं। मैं विन्यास के ssh भाग पर एक विस्तृत मैनुअल के लिए आधिकारिक जेनकींस वेबसाइट पर देखा, लेकिन मुझे कोई नहीं मिला।

तो यहां एक त्वरित अवलोकन है - मुझे बताएं कि क्या यह आपकी आवश्यकता है।

  1. जेनकिंस स्लेव (बिल्डिंग मशीन) गिट-सर्वर से जुड़ती है (जेनकिंस मास्टर)
  2. निर्माण मशीन जेनकींस उपयोगकर्ता के रूप में चलती है (उदाहरण के लिए जेनकिन्स @ dilbert: ~ $)
  3. git- सर्वर git उपयोगकर्ता के रूप में चलता है (जैसे git @ store: ~ $)
  4. jenkins @ dilbert सार्वजनिक कुंजी को git @ store अधिकृत_keys में रखा जाना चाहिए
  5. jenkins@dilbert:~/.ssh$ ssh-copy-id git@storegit server के लिए jenkins @ dilbert ssh public key को कॉपी करने के लिए रन करें

क्या आप बता सकते हैं कि कौन से उपयोगकर्ता ssh-key को कहां से जोड़ सकते हैं?
बेयर

jenkins उपयोगकर्ता के पास अपना पब-की स्टोर होना चाहिए <jenkins उपयोगकर्ता होम dir> / ssh / id_rsa.pub में इसे जोड़ने की आवश्यकता है <git उपयोगकर्ता घर dir> /। ssh /
अधिकृत_s_s

"जेनकिंस @ स्टोर: ~ / .ssh $ ssh-copy-id git @ store" करने से कॉन्फ़िगरेशन स्वीकार करने के लिए जेनकींस मिलता है (जो कि एक सुधार है), लेकिन रिमोट जेनकिंस दास पर एक निर्माण विफल हो जाता है। कोई उपाय?
बेयर

पढ़ने के लिए अच्छा है। दुर्भाग्य से, git के साथ मेरा अनुभव बहुत अधिक समाप्त होता है ... लेकिन मुझे काम पर एक समान समस्या याद है। मुझे अब गलत हो सकता है, लेकिन आपको एक उपयोगकर्ता के रूप में काम करना होगा (उदाहरण के लिए जोर्ज बेयर) जीआईटी-प्लेटफॉर्म पर, सही? कृपया वहां अनुमति को सत्यापित करें (आप प्रत्येक समूह के लिए वेब इंटरफ़ेस में उपयोगकर्ताओं की अनुमति को बदल सकते हैं)। परीक्षण / EDIT के लिए इसे डेवलपर पर सेट करने का प्रयास करें: आपने रिमोट जेनकिंस स्लेव लिखा है - यदि यह एक अलग कुंजी जोड़ी का उपयोग करता है, तो आपको सार्वजनिक कुंजी को git के
अधिकृत_की में

निश्चित नहीं। मैंने सवाल अपडेट किया। मुझे कहाँ जोड़ने की आवश्यकता है?
Jörg Beyer
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.