लिनक्स निष्क्रिय SSH कनेक्शनों को समय नहीं देता है। आप एक SSH कनेक्शन को अनिश्चित काल के लिए खुला छोड़ सकते हैं, और जब तक कि न तो समापन बिंदु को रिबूट किया गया या नया आईपी पता नहीं मिला, तब तक कनेक्शन तब भी काम करेगा जब आप लंबे निष्क्रिय समय के बाद इसे एक्सेस करते हैं।
हालाँकि यदि कोई स्टेटफुल मिडबॉक्स (NAT, फ़ायरवॉल इत्यादि) हैं, तो वे निष्क्रिय कनेक्शन के समय से बाहर होने की संभावना है। इसका नतीजा यह है कि भले ही कनेक्शन दोनों सिरों पर जीवित है, दो एंडपॉइंट्स अब संवाद नहीं कर सकते क्योंकि एसएसएच क्लाइंट एक नया कनेक्शन खोलने तक मिडबॉक्स किसी भी पैकेट को आगे करने से इनकार कर देता है।
आप middlebox का समय समाप्त जानते हैं, तो आप कॉन्फ़िगर करके समस्या को हल करने कर सकते हैं ClientAliveInterval
में /etc/ssh/sshd_config
सर्वर पर या ServerAliveInterval
में ~/.ssh/config
ग्राहक पर। टूटे हुए कनेक्शनों के इष्टतम पता लगाने के लिए दोनों सेटिंग्स को सक्षम करना उचित है। यह टूटे हुए कनेक्शनों का भी पता लगाएगा जब या तो समापन बिंदु को रिबूट किया गया है या एक नया आईपी पता प्राप्त किया है।
चूँकि आप संकेत देते हैं कि समय-समय पर कभी-कभी कुछ सेकंड के रूप में कम प्रतीत होता है, यह आपकी समस्या को हल करने के लिए पर्याप्त नहीं हो सकता है। एक बहुत कम स्पष्ट समय समाप्त हो सकता है एक अतिभारित या गलत अनुमान CGN के कारण। आपको यह पता लगाने के लिए संचार मार्ग के विभिन्न बिंदुओं पर यातायात का निरीक्षण करने की आवश्यकता है कि विफलता के लिए एक CGN जिम्मेदार है या नहीं।
यदि यह पता चलता है कि विफलताएँ आपके ISP द्वारा मूर्खतापूर्ण कार्य करने के कारण होती हैं जैसे कि कई CGN पर लोड संतुलन कनेक्शन, जो कनेक्शन स्थिति साझा नहीं करता है, तो आप अपने SSH कॉन्फ़िगरेशन को केवल ट्विक करके समस्या को स्वयं ठीक नहीं कर सकते।
यदि आप एक अविश्वसनीय सीजीएन के साथ आईएसपी के साथ फंसने वाले होते हैं, जिसे वे ठीक करने से इनकार करते हैं, तो केवल शेष विकल्प जो मुझे पता है कि दोनों क्लाइंट और सर्वर को MPTCP समर्थन के साथ कर्नेल संस्करणों में अपग्रेड करने के लिए या स्वतःस्फूर्त सहन करने के लिए डिज़ाइन किए गए सुरंग समाधान का उपयोग करने के लिए हैं। NAT पर पोर्ट मैपिंग में परिवर्तन।