2012-09-26 16 views
6

मुझे TortoiseSVN 1.7.8 का उपयोग कर एक एसवीएन भंडार तक पहुंचने में समस्याएं आ रही हैं।TortiseSVN svn + ssh त्रुटि: यूआरएल पर एक भंडार से कनेक्ट करने में असमर्थ ... नेटवर्क कनेक्शन अप्रत्याशित रूप से बंद

एसवीएन रिपोजिटरी openssh 5.3p1:81.el6 के साथ एक CentOS 6.3 बॉक्स पर है और यह ठीक से काम कर रहा प्रतीत होता है।

# svnadmin --version 
# svnadmin, version 1.6.11 (r934486) 

मैं इस आदेश के साथ एक और CentOS बॉक्स के भंडार का उपयोग कर सकते हैं:

svn list svn+ssh://[email protected]/var/svn/joetest 

लेकिन जब मैं एक 7 विन कार्य केंद्र मैं क्या करने में असमर्थ हूँ से भंडार TortiseSVN का उपयोग कर ब्राउज़ करने का प्रयास तो का उपयोग कर निम्नलिखित पथ:

svn+ssh://[email protected]/var/svn/joetest 

मैं TortoiseSVN से निम्न त्रुटि प्राप्त:

Unable to connect to a repository at URL 'svn+ssh://[email protected]/var/svn/joetest' To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file. Network connection closed unexpectedly

मैं पुट्टी का उपयोग कर वर्कस्टेशन से एसएसएच के माध्यम से लॉगिन करने में सक्षम हूं।

परिणाम समान हैं यदि मैं रूट के रूप में उपयोग करने का प्रयास करता हूं।

मैं USER:USER के भंडार /var/svn/ का स्वामित्व दिया और
chmod 2700 -R /var/svn/ भाग गया है।

क्योंकि मैं किसी अन्य लिनक्स बॉक्स से एसएसएच के माध्यम से भंडार तक पहुंच सकता हूं, अनुमतियां समस्या प्रतीत नहीं होती हैं।

जब मैं tail -fn 2000 /var/log/secure का उपयोग कर लॉग फ़ाइल देखने के लिए, मैं हर बार TortiseSVN पासवर्ड के लिए पूछता निम्न देखें:

Sep 26 17:34:31 dev sshd[30361]: Accepted password for USER from xx.xxx.xx.xxx port 59101 ssh2 
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session opened for user USER by (uid=0) 
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session closed for user USER 

मैं वास्तव में प्रवेश करने में सक्षम हूँ, लेकिन सत्र तो तुरंत बंद कर दिया है।

यह मेरी आंख को पकड़ा कि सत्र (uid=0) द्वारा उपयोगकर्ता के लिए सत्र खोला जा रहा है, जो सही हो सकता है, लेकिन अगर समस्या के साथ कुछ करने के मामले में मैं इसका उल्लेख करूंगा।

मैंने svnserve.conf को संशोधित करने में देखा, लेकिन जहां तक ​​मैं कह सकता हूं, svn+ssh के माध्यम से भंडार तक पहुंचने पर इसका उपयोग नहीं किया जाता है, इस विधि के माध्यम से प्रत्येक लॉग के लिए एक निजी svnserve इंस्टेंस बनाया जाता है। मैनुअल से:

There's still a third way to invoke svnserve, and that's in “tunnel mode”, with the -t option. This mode assumes that a remote-service program such as RSH or SSH has successfully authenticated a user and is now invoking a private svnserve process as that user. The svnserve program behaves normally (communicating via stdin and stdout), and assumes that the traffic is being automatically redirected over some sort of tunnel back to the client. When svnserve is invoked by a tunnel agent like this, be sure that the authenticated user has full read and write access to the repository database files. (See Servers and Permissions: A Word of Warning.) It's essentially the same as a local user accessing the repository via file:/// URLs.

केवल गैर डिफ़ॉल्ट सेटिंग्स sshd_config में हैं:

Protocol 2 # to disable Protocol 1 

SyslogFacility AUTHPRIV 

ChallengeResponseAuthentication no 

GSSAPIAuthentication yes 
GSSAPICleanupCredentials yes 

UsePAM yes 

AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES 
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT 
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE 
AcceptEnv XMODIFIERS 

X11Forwarding no 

Subsystem  sftp /usr/libexec/openssh/sftp-server 

किसी भी विचार?

+0

बस एक विचार करने के लिए लॉग परिवर्तन सेट किया जाता है इस प्रकार की समस्या है, तो कोशिश यूआरएल को यूआरएल से बाहर ले जाना और क्रेडेंशियल्स के लिए कछुआ के लिए तत्काल इंतजार करना। सुनिश्चित नहीं है कि यह काम करेगा, लेकिन यह एक कोशिश के लायक है। – Scott

+0

सुझाव के लिए धन्यवाद, लेकिन एक ही परिणाम। – codewaggle

+0

जब आप कछुआ रेपो-ब्राउज़र खोलते हैं, तो यह आपको क्या त्रुटि देता है? – Scott

उत्तर

4

अंततः मैं इसके लिए एक समाधान में आया।
TortoiseSVN Frequently asked questions

पूछे जाने वाले प्रश्न से:: सभी स्थानों के TortoiseSVN पूछे जाने वाले प्रश्न में
SVN+SSH: Connection closed unexpectedly

It has been reported that svn+ssh connections of the form svn+ssh://[email protected] which were previously working, stop working with TortoiseSVN 1.5. This seems to be related to plink, and occurs if you have a default hostname set in PuTTY.

If this is the case you can fix it by using regedit or regedt32 to clear HKEY_CURRENT_USER/Software/SimonTatham/Putty/Sessions/Default%20Settings/HostName.


Another user has reported the following server-side fix:

  • ssh into your account
  • cd ~
  • cp /etc/bashrc .bashrc
  • nano .bashrc
  • put a # before the line "mesg y" (which comments it out)
  • Ctrl+X to exit, press Y when prompted to save.

मैं अपने रजिस्ट्री को संपादित करने के पहले दृष्टिकोण कोशिश नहीं की।

बैश कॉन्फ़िगरेशन को संपादित करने का दूसरा दृष्टिकोण मेरे लिए काम करता है।

बैश विन्यास विधि के बारे में एक नोट:

आप पर साझा होस्टिंग, अपने उपयोगकर्ता .bashrc फाइल संभावना वैश्विक/etc/bashrc फ़ाइल लोड किया जाएगा रहे हैं। आप वैश्विक फ़ाइल को संपादित करने में सक्षम नहीं होंगे, इसलिए आपको इसके आसपास काम करने की आवश्यकता होगी।

कुछ संभव दृष्टिकोण:

  • अपने उपयोगकर्ता .bashrc फाइल करने के लिए mesg n जोड़ने का प्रयास करें। मुझे यकीन नहीं है कि यह काम करेगा या इसे वैश्विक फ़ाइल से पहले या उसके बाद रखा जाना चाहिए या नहीं।

  • वैश्विक फ़ाइल और हार्ड कोड को अपने उपयोगकर्ता .bashrc फ़ाइल में सभी सेटिंग्स शामिल न करें।

  • mesg y वैश्विक/etc/bashrc फ़ाइल से सेटिंग को हटाएं क्योंकि यह लोड हो रहा है। इस सवाल पर चर्चा करता है कि कैसे करना है: Use a grepped file as an included source in bash

+0

मैं वही सटीक चीज़ करने की कोशिश कर रहा हूं और मुझे ऊपर पोस्ट किया गया एक समान त्रुटि संदेश प्राप्त हो रहा है। हालांकि, मैं gui का उपयोग करके और repn + ssh: // user @ ip/repo के साथ इसे बहाने के द्वारा अपने रेपो से कनेक्ट कर सकता हूं लेकिन यह मुझे कमांड लाइन के माध्यम से ऐसा करने की अनुमति नहीं देगा। क्या आपके पास कमांड लाइन का उपयोग करके ऐसा कोई भाग्य है? –

+0

@ एनकॉन यह एक छोटी परियोजना थी और अब मुझे उस सर्वर तक पहुंच नहीं है, इसलिए मैं इसके खिलाफ परीक्षण नहीं कर सकता। मेरा सुझाव है कि आप एक प्रश्न खोलें और उन आदेशों के बारे में सभी विवरण शामिल करें जो लॉग प्रविष्टियों के साथ काम करते हैं और एसवीएन, एसएसएच और बीएएसएच के लिए आपकी कॉन्फ़िगरेशन (जैसा कि मैंने अपने प्रश्न और उत्तर में शामिल किया है) के समान काम नहीं करते हैं। इससे किसी को यह देखने का सबसे अच्छा मौका मिलेगा कि समस्या का कारण क्या हो सकता है। प्रश्न बनाने के बाद यहां एक टिप्पणी जोड़ें और मैं इसे देख लूंगा। – codewaggle

2

एक पुरानी सवाल, लेकिन अभी भी गूगल पर ढेर के शीर्ष पर, इसलिए मैंने सोचा कि मैं अपने समाधान का हिस्सा चाहते हैं।

बस, ऐसा इसलिए था क्योंकि मेरे पास सर्वर पर मेरे उपयोगकर्ता के लिए "होम" निर्देशिका नहीं थी। एसएसएच क्लाइंट को पुटी के साथ आने वाले plink.exe में बदलना (फ़ोल्डर पर राइट-क्लिक करें | TortoiseSVN | सेटिंग्स | नेटवर्क) ने मुझे स्क्रीन पर दिखाई देने के रूप में त्रुटि देखने की अनुमति दी।

0

मेरे मामले में कारण यह था कि svnuser में कोई खोल नहीं है (यह/bin/false) था।
यह ssh -vvv के साथ भी ssh लॉग में दिखाई नहीं दे रहा है।

आप अपने डिबग आउटपुट इस

debug1: Entering interactive session. 
debug1: Remote: Forced command. 
debug1: Remote: Port forwarding disabled. 
debug1: Remote: Agent forwarding disabled. 
debug1: Remote: X11 forwarding disabled. 
debug1: Remote: Pty allocation disabled. 
debug1: Remote: Forced command. 
debug1: Remote: Port forwarding disabled. 
debug1: Remote: Agent forwarding disabled. 
debug1: Remote: X11 forwarding disabled. 
debug1: Remote: Pty allocation disabled. 
debug1: Sending environment. 
debug1: Sending env LANG = en_GB.UTF-8 
debug1: Sending command: svnserve -t 
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0 
debug1: channel 0: free: client-session, nchannels 1 

तरह दिखेगा खोल करने के लिए/bin/bash

debug1: Sending env LANG = en_GB.UTF-8 
debug1: Sending command: svnserve -t 
Path: MyRepo 
URL: svn+ssh://[email protected]/MyRepo 
संबंधित मुद्दे