2011-01-17 12 views
7

से कनेक्ट करते समय एसएसएच कुंजी प्रमाणीकरण विफल रहा है, इसलिए मेरे पास उबंटू वीएम में चल रहे हडसन (v1.393) और सबकुछ ठीक काम कर रहा है। हालांकि मैं उबंटू मास्टर में मैक गुलाम जोड़ने की कोशिश कर रहा हूं और मैंने कुछ समस्याओं में भाग लिया है।मैक हडसन दास को लिनक्स मास्टर

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

हडसन दास कॉन्फ़िगरेशन में, मैंने "एसएसएच के माध्यम से यूनिक्स मशीनों पर दास एजेंट लॉन्च किया है" चुना है और मेजबान आईपी दर्ज किया है, दास पर उपयोगकर्ता का उपयोगकर्ता नाम और मास्टर पर मेरी निजी कुंजी फ़ाइल का स्थान (जो गुलाम पर अधिकृत कुंजी फ़ाइल में जोड़ा गया है)।

हालांकि, मास्टर दास से जुड़ने में विफल रहता है। लॉग (नीचे) को देखते हुए, यह पासवर्ड का उपयोग करके प्रमाणित करने का प्रयास कर रहा है।

क्या यह असफल कुंजी आधारित एसएसएच प्रयास के लिए वापस आ गया है?
क्या हडसन केवल पासवर्ड का उपयोग करके प्रमाणित करने का प्रयास कर रहा है, और मुझे कॉन्फ़िगरेशन में परिभाषित कुंजी फ़ाइल का उपयोग करने के लिए कुछ और बदलने की आवश्यकता है?
क्या मैक पर ssh के माध्यम से गुलाम एजेंट लॉन्च करना संभव नहीं है? (मैं जानता हूँ कि गुलाम लांच विधि के इस प्रकार के नाम स्पष्ट रूप से कहा गया है यूनिक्स, लेकिन मैं सोच रहा था (पढ़ें: आशा कर रहा) है कि यह भी ओएस एक्स के साथ काम करेगा)

लॉग

[01/14/11 10:38:07] [SSH] Opening SSH connection to 10.0.1.188:22. 
[01/14/11 10:38:07] [SSH] Authenticating as hudson/******. 
java.io.IOException: Password authentication failed. 
at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:319) 
at com.trilead.ssh2.Connection.authenticateWithPassword(Connection.java:314) 
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:565) 
at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:179) 
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:184) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:636) 
Caused by: java.io.IOException: Authentication method password not supported by the server at this stage. 
at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:289) 
... 9 more 
[01/14/11 10:38:07] [SSH] Connection closed. 

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

+1

क्या आपने निजी कुंजी के बिना और पासवर्ड के साथ प्रयास किया है? देखें कि क्या यह उस विधि का उपयोग कर कनेक्ट करता है .. – Sagar

+0

क्या आपने वीएस से ओएस एक्स बॉक्स से कनेक्ट करने का प्रयास किया है ताकि यह देखने के लिए कि क्या कुंजी ऑथ सक्षम है या नहीं? ओएस एक्स बॉक्स सर्वर या क्लाइंट संस्करण है? जब आपने कुंजी उत्पन्न की थी तो क्या आपने पासवर्ड खाली छोड़ दिया था? – prodigitalson

+0

@ सागर: बस एक कुंजी के बजाय पासवर्ड का उपयोग करने की कोशिश की। कोई भाग्य, लॉग में एक ही संदेश। – mattbilson

उत्तर

16

मैंने हाल ही में एक ही समस्या में भाग लिया है, एसएसएच का उपयोग कर मैक ओएस एक्स 10.6 मशीन पर एजेंट लॉन्च करने का प्रयास कर रहा है।

काम करने के लिए आप संपादित करना/etc/ग्राहक नोड पर sshd_config की आवश्यकता होगी पासवर्ड प्रमाणीकरण प्राप्त करने के लिए, PasswordAuthentication yes

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

पासवर्ड-कम एसएसएच प्रमाणीकरण के लिए, पहले जांचें कि हडसन मास्टर किस उपयोगकर्ता के रूप में चल रहा है। आइए मान लें कि यह tomcat55 है। एक सार्वजनिक/निजी एसएसएच कुंजी जोड़ी (एक खाली पासफ्रेज के साथ) उत्पन्न करें, फिर सत्यापित करें कि हडसन उपयोगकर्ता कनेक्ट कर सकता है।

$ ssh-keygen -t rsa 
Generating public/private rsa key pair. 
Enter file in which to save the key (/home/tomcat55/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/tomcat55/.ssh/id_rsa. 
Your public key has been saved in /home/tomcat55/.ssh/id_rsa.pub. 

$ # authorize the hudson master on the hudson node 
$ scp /home/tomcat55/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys 
$ # test the connection 
$ ssh -i /home/tomcat55/.ssh/id_rsa [email protected] 

पर हडसन मैक नोड,/आदि/sshd_config पासवर्ड से कम उपयोग करने के लिए अनुमति देने के लिए की जरूरत है।

Protocol 2 
PubkeyAuthentication yes 

नोड विन्यास में पासवर्ड क्षेत्र को साफ, और निजी कुंजी क्षेत्र सेट (इस उदाहरण में यह /home/tomcat55/.ssh/id_rsa है)।अब आप एजेंट शुरू करने के लिए सक्षम होना चाहिए:

[01/19/11 22:38:44] [SSH] Opening SSH connection to macnode:22. 
[01/19/11 22:38:44] [SSH] Authenticating as hudson with /home/tomcat55/.ssh/id_rsa. 
[01/19/11 22:38:45] [SSH] Authentication successful. 
+0

धन्यवाद रोनेन! पासवर्ड प्रमाणीकरण ठीक काम करता है। हालांकि, अगर मैं पासवर्ड हटा देता हूं और एसएसएच कुंजी पर भरोसा करता हूं, तो यह अभी भी विफल रहता है, और हडसन अभी भी पासवर्ड पर भरोसा कर रहा है - "[01/02/11 13:11:45] [एसएसएच] मैटबिल्सन/* के रूप में प्रमाणीकरण *****। " क्या यह मेरे sshd_config में कुछ और है? मेरे पास "आरएसए प्रमाणीकरण हां" है, "पब्की प्रमाणीकरण हां", "प्राधिकृतकिज़फाइल। एसएसएच/अधिकृत_की" – mattbilson

+0

एसएसएच प्लग-इन पासवर्ड पर वापस आ जाता है अगर यह नोड में लॉग इन करने के लिए निजी कुंजी का उपयोग नहीं कर सकता है। जब आप चीजों को समझने की कोशिश करते हैं, तो मैं पासवर्ड फ़ील्ड को खाली छोड़ दूंगा, यह सुनिश्चित करने के लिए कि यह पासवर्ड प्रमाणीकरण नहीं है जो इसे दे रहा है। साथ ही, क्या हो रहा है ssh -i KEYFILE USER @ HOST। यदि आप मैन्युअल रूप से * हडसन उपयोगकर्ता * के रूप में ऐसा कर सकते हैं तो हडसन भी ऐसा करने में सक्षम होना चाहिए। क्या आप हडसन उपयोगकर्ता को su करने में सक्षम हैं, तो कमांड लाइन से ssh करने का प्रयास करें? यदि कोई समस्या है तो आपको इसे इस तरह से मिल जाएगा। –

+0

यही वह है! हडसन हडसन उपयोगकर्ता पर चलता है, लेकिन मैं उबंटू मशीन पर एक अलग उपयोगकर्ता के रूप में हूं। और हडसन को मेरी मुख्य फ़ाइल के लिए अनुमति नहीं थी। तो अब मैंने हडसन उपयोगकर्ता के लिए एक कुंजी बनाई है और इसे मैक में जोड़ा है। बाहर निकलता है यह एक बहुत ही साधारण गलती थी। हडसन वास्तव में रोनेन क्या कर रहा था, इस बारे में जानकारी के लिए धन्यवाद! – mattbilson

2

उबंटू मशीन पर /var/log/auth.log फ़ाइल की जांच करें। मैं शर्त लगा रहा हूं कि आपको हडसन उपयोगकर्ता की 700 .ssh निर्देशिका को chmod करने की आवश्यकता है।

+0

बस उस फ़ाइल को 700-आईएनजी करने की कोशिश की, अनुमतियां अब "-rwx ------" हैं। अभी भी कोई भाग्य नहीं है। – mattbilson

1

मुझे लगता है कि पहले उत्तर (एक का चयन किया) एक भयानक जवाब है, लेकिन मैं एक मामला लगता है, जहां यह केवल समाधान नहीं है किया था।

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

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