लिनक्स एसएसएच टाइमआउट [बंद]


10

मैं निष्क्रियता के एक्स मिनट के बाद बाहर कुछ समय के साथ संघर्ष कर रहा हूं और निश्चित नहीं हूं कि इसे कैसे ठीक किया जाए।

मेरे कार्यालय में एक CentOS बॉक्स है। SSH से कनेक्ट इसे 2 घंटे तक नहीं छू सकता है और जब भी मैं कुछ चलाता हूं, तो यह रहता है।

हालांकि, घर पर उसी बॉक्स से कनेक्ट करें, और यह कभी-कभी कुछ सेकंड के बाद कभी-कभी कुछ मिनटों के बाद टाइमआउट करेगा।

मुझे लगता है कि यह मेरा इंटरनेट कनेक्शन है, लेकिन अगर मैं सक्रिय रूप से बॉक्स का उपयोग कर रहा हूं तो यह जुड़ा रहेगा।

हालांकि अगर मैं Google पर कुछ लिखना बंद कर देता हूं तो यह डिस्कनेक्ट किया हुआ संदेश दिखाएगा और मुझे फिर से कनेक्ट करना होगा।

कुछ भी मैं देख सकता हूं कि क्या चल रहा है?


4
आपके (अनाम) क्लाइंट के लिए दस्तावेज़।
1995 पर user9517

जवाबों:


14

पहली चीज जिसे आपको देखना चाहिए, वह है ServerAliveInterval। इसे आपके वर्कस्टेशन पर सेट किया जाना चाहिए।

लिनक्स या OSX क्लाइंट्स पर आप अपने वर्कस्टेशन पर ~ / .ssh / कॉन्फिगरेशन के तहत अपने यूजर के लिए एक कॉन्फिगरेशन फाइल बना सकते हैं। निम्नलिखित निर्देश जोड़ें। मेरे मामले में मैं चाहता हूं कि यह सभी मेजबानों को प्रभावित करे इसलिए मैंने इसे होस्ट * के तहत रखा।

Host *
    ServerAliveInterval 60

यह कनेक्शन को खुला रखने के लिए हर 60 सेकंड में एक नॉओप निर्देश भेजेगा। आप अपनी आवश्यकताओं को पूरा करने के लिए मूल्य को मोड़ सकते हैं।

सर्वर की ओर से सुनिश्चित करें कि TCPKeepAlive हां पर सेट है।

grep TCPKeepAlive /etc/ssh/sshd_config
TCPKeepAlive yes

यदि आप विंडोज पर हैं, तो आपको अपने क्लाइंट के लिए प्रलेखन का संदर्भ देना होगा।


11

लिनक्स निष्क्रिय SSH कनेक्शनों को समय नहीं देता है। आप एक SSH कनेक्शन को अनिश्चित काल के लिए खुला छोड़ सकते हैं, और जब तक कि न तो समापन बिंदु को रिबूट किया गया या नया आईपी पता नहीं मिला, तब तक कनेक्शन तब भी काम करेगा जब आप लंबे निष्क्रिय समय के बाद इसे एक्सेस करते हैं।

हालाँकि यदि कोई स्टेटफुल मिडबॉक्स (NAT, फ़ायरवॉल इत्यादि) हैं, तो वे निष्क्रिय कनेक्शन के समय से बाहर होने की संभावना है। इसका नतीजा यह है कि भले ही कनेक्शन दोनों सिरों पर जीवित है, दो एंडपॉइंट्स अब संवाद नहीं कर सकते क्योंकि एसएसएच क्लाइंट एक नया कनेक्शन खोलने तक मिडबॉक्स किसी भी पैकेट को आगे करने से इनकार कर देता है।

आप middlebox का समय समाप्त जानते हैं, तो आप कॉन्फ़िगर करके समस्या को हल करने कर सकते हैं ClientAliveIntervalमें /etc/ssh/sshd_configसर्वर पर या ServerAliveIntervalमें ~/.ssh/configग्राहक पर। टूटे हुए कनेक्शनों के इष्टतम पता लगाने के लिए दोनों सेटिंग्स को सक्षम करना उचित है। यह टूटे हुए कनेक्शनों का भी पता लगाएगा जब या तो समापन बिंदु को रिबूट किया गया है या एक नया आईपी पता प्राप्त किया है।

चूँकि आप संकेत देते हैं कि समय-समय पर कभी-कभी कुछ सेकंड के रूप में कम प्रतीत होता है, यह आपकी समस्या को हल करने के लिए पर्याप्त नहीं हो सकता है। एक बहुत कम स्पष्ट समय समाप्त हो सकता है एक अतिभारित या गलत अनुमान CGN के कारण। आपको यह पता लगाने के लिए संचार मार्ग के विभिन्न बिंदुओं पर यातायात का निरीक्षण करने की आवश्यकता है कि विफलता के लिए एक CGN जिम्मेदार है या नहीं।

यदि यह पता चलता है कि विफलताएँ आपके ISP द्वारा मूर्खतापूर्ण कार्य करने के कारण होती हैं जैसे कि कई CGN पर लोड संतुलन कनेक्शन, जो कनेक्शन स्थिति साझा नहीं करता है, तो आप अपने SSH कॉन्फ़िगरेशन को केवल ट्विक करके समस्या को स्वयं ठीक नहीं कर सकते।

यदि आप एक अविश्वसनीय सीजीएन के साथ आईएसपी के साथ फंसने वाले होते हैं, जिसे वे ठीक करने से इनकार करते हैं, तो केवल शेष विकल्प जो मुझे पता है कि दोनों क्लाइंट और सर्वर को MPTCP समर्थन के साथ कर्नेल संस्करणों में अपग्रेड करने के लिए या स्वतःस्फूर्त सहन करने के लिए डिज़ाइन किए गए सुरंग समाधान का उपयोग करने के लिए हैं। NAT पर पोर्ट मैपिंग में परिवर्तन।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.