यदि आप SSH कनेक्शन का उपयोग करते हैं और त्रुटि का सामना करते हैं तो यह ट्यूटोरियल आपको एक बहुत अच्छा समाधान प्रदान करता है: SSH Connection Timing Out / Broken Pipe. अनुचित रूप से त्रुटि कहा। यह एक संदेश है जो यह घोषणा करता है कि आपके कंप्यूटर और जिस सर्वर से यह जुड़ा था, उसके बीच का कनेक्शन बंद हो गया था Putty या Terminal.
दोनों user के उपयोगकर्ता के रूप में Windows साथ ही साथ द्वारा Mac (पिछले १० वर्षों में) मैंने बहुत समय बिताया एसएसएच कनेक्शन वेब सर्वर, ईमेल सर्वर, क्लाउड और अन्य बैकअप पैकेज के लिए। का पसंदीदा वितरण Linux निस्संदेह है CentOS.
करने के लिए सबसे तनावपूर्ण चीजों में से एक administratorसर्वरों का ii है SSH कनेक्शन को बाधित करने के लिए. या तो अचानक पुट्टी में बटन लगाते समय या Terminal (अक्सर यह एक स्थानीय कनेक्शन समस्या होती है), या एक समय के बाद "idle”- वह समयावधि जिसमें वह SSH सत्र के माध्यम से दूरस्थ सर्वर से इंटरैक्ट नहीं करता है।
आप उपयोग कर रहे हैं Mac और उपयोगिता का उपयोग करें Terminal SSH के माध्यम से दूरस्थ कनेक्शन के लिए, तो निश्चित रूप से कुछ निष्क्रियता के बाद आप संदेश से डिस्कनेक्ट हो गए थे:client_loop: send disconnect: Broken pipe" मैंने समाधान दिया लेख यहाँ, जिसमें मैंने कहा कि इसमें जोड़ा जा सकता है "/etc/ssh/ssh_config
" रेखा:
Host *
ServerAliveInterval 120
उपरोक्त समाधान के उपयोगकर्ताओं के लिए मान्य है Mac, और ईमानदारी से . के नवीनतम अपडेट होने के लिए macOS मैं पुनरारंभ करने के बाद फ़ाइल में किए गए परिवर्तनों को बनाए नहीं रखताssh_config
", और एक निष्क्रिय सत्र को डिस्कनेक्ट करने की समस्या वापस आती है।
एक समाधान जिसके द्वारा हम एक SSH सत्र के वियोग को निम्न द्वारा निर्धारित दूरी पर रोक सकते हैं Terminal (macOS) या पोटीन (Windows), इसके अलावा की तरह है "ServerAliveInterval
"हमारे कंप्यूटर से, SSH एप्लिकेशन / क्लाइंट के साथ समय-समय पर संचार करने के लिए दूरस्थ सर्वर का निर्धारण करने के लिए।
इसलिए हमें निर्देश देना होगा"ClientAliveInterval
"में"sshd_config
"सर्वर पर हम कनेक्ट कर रहे हैं।
रोकना SSH Connection Timing Out / Broken Pipe (ssh_config सलाह)
1. हम उस सर्वर से जुड़ते हैं जिसे हम सक्रिय करना चाहते हैं और इसके लिए एक समय अंतराल निर्धारित करते हैं "ClientAliveInternal"। खुला SSH in Putty, Terminal या अन्य समान उपयोगिता और हम उपयोगकर्ता के साथ प्रमाणित करते हैं root
.
ssh root@server.hostname
2. फ़ाइल में खोजने के लिए कमांड लाइन निष्पादित करें "sshd_config" अगर "ClientAliveInterval” सक्रिय है और निर्धारित समय अवधि क्या है।
sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
हमारे परिदृश्य में "ClientAliveInterval” अक्षम है और समय अंतराल मान शून्य है।
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
हैशटैग "#
"एक पंक्ति के सामने रखा, इसे रद्द कर देता है। वह निष्क्रिय है।
3. हम संपादक के साथ खुलते हैं "nano
"या फिर"vim
"फाइल"sshd_config
"। मैं पसंद करता हूं "nano".
sudo nano /etc/ssh/sshd_config
4. हटाएं "#
"लाइन के सामने"ClientAliveInterval
"और कुछ सेकंड सेट करें: 60, 120 ...
ClientAliveInterval 120
ClientAliveCountMax 10
5. परिवर्तनों को सहेजें और सेवा को पुनरारंभ करें "sshd
".
sudo systemctl restart sshd
ClientAliveInterval
: यह सेकंड में समय अंतराल है कि सर्वर क्लाइंट / एप्लिकेशन को एक नल डेटा पैकेट भेजता है जिसके माध्यम से हम सर्वर से जुड़े होते हैं। यह अभ्यास कनेक्शन को जीवित/सक्रिय रखेगा।
ClientAliveCountMax
: अनुत्तरदायी SSH क्लाइंट 10 सेकंड के 120 चक्रों में (द्वारा निर्धारित "ClientAliveInterval") कनेक्शन बाधित हो जाएगा। यानी 20 मिनट के बाद जिसमें ग्राहक SSH सर्वर द्वारा भेजे गए अशक्त पैकेटों का जवाब नहीं दिया।
इन परिवर्तनों के साथ कनेक्शन SSH यह अधिक स्थिर होगा और उतना ही सुरक्षित रहेगा।