2010-02-11 9 views
6

हर रोज मुझे एक बहुत ही अजीब घटना का सामना नहीं करता है।"ssh example.com" hangs लेकिन "ssh example.com bash -i"

मेरे विश्वविद्यालय इंटरनेट कनेक्शन से, मेरी मशीन ("ssh example.com") में sshing बिना किसी समस्या के काम करता है।

मेरे घर एडीएसएल से, "ssh example.com" मेरे कंसोल इस संदेश के साथ अटक जाती है:

debug1: Server accepts key: pkalg ssh-rsa blen 533 
debug1: Enabling compression at level 6. 
debug1: Authentication succeeded (publickey). 
debug1: channel 0: new [client-session] 
debug1: Requesting [email protected] 
debug1: Entering interactive session. 

कभी कभी यह मुझ में लेकिन अधिकांश मामलों में नहीं में जाने सकता है। मजाकिया बात यह है कि अगर मैं "ssh example.com bash -i" निष्पादित करता हूं तो मैं तुरंत लॉग इन करता हूं।

उत्तर

11

मुझे अंत में समस्या का स्रोत मिला। इसे एसएसएच प्रकार की सेवा (टीओएस) टीसीपी पैकेट के साथ करना है।

जब आप नियमित एसएसएच टेम्पिनल के लिए पूछते हैं, तो एसएसएच टीसीपी पैकेट प्रकार की सेवा (टीओएस) को "इंटरैक्टिव" पर सेट करता है। मेरे निवास में मेरा राउटर उन पैकेट प्रकारों को अवरुद्ध करता है!

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

.ssh/config फाइल में, आप सेट करना होगा:

Host *.example.com 
    ProxyCommand nc %h %p 

तो, हर बार जब आप example.com, netcat बुलाया जाएगा और इच्छा सुरंग पैकेट को ssh का प्रयास करें।

0

दो मामलों के बीच अंतर यह है कि "bash -i" आपको लॉगिन खोल नहीं देता है लेकिन केवल एसएसएच चलाता है। "लॉगिन शेल" क्या है, इसके विवरण के लिए आप "मैन बैश" कर सकते हैं, लेकिन मुख्य बात यह है कि यह/etc/profile और your .bash_profile चलाती है। किसी भी चीज के लिए उन फ़ाइलों के लिए एक नज़र डालें जो समस्या पैदा कर रहे हैं।

0

शायद सर्वर ptys से बाहर है।

1

मुझे अभी भी एक ही समस्या है। अधिक जानकारी के लिए एक अलग एसएसएच क्लाइंट के साथ लॉग इन करने का प्रयास करें। जबकि लिनक्स कमांड लाइन क्लाइंट किसी भी उपयोगी संदेश के साथ वापस नहीं आया, पुट्टी वापस आ गया "सर्वर ने पीटीआई आवंटित करने से इंकार कर दिया"। मैंने इसे mkdir/dev/pts और mount -a के साथ तय किया। यह पहली जगह में कैसे मिल गया यह मुझे कम यकीन है।

बीटीडब्ल्यू, बैश -एल को लॉगिन खोल की तरह कार्य करना चाहिए ताकि आप पीटर वेस्टलेक के सुझाव को अपने मामले में सही या गलत साबित करने में सक्षम होना चाहिए।

8

OpenSSH 5.7 के रूप में, आप सिर्फ इस अपने ssh कॉन्फ़िग फ़ाइल (या तो ~/.ssh/config या/etc/ssh/ssh_config) जोड़ सकते हैं:

 
Host * 
    IPQoS 0x00 

यह करने के लिए एक और अधिक-सीधा रास्ता है एस्टरियोस की पहचान की समस्या के आसपास काम करते हैं।