सवाल जब यह ताले हो तो मैं एसएसएच से कैसे टूट सकता हूं?


मैं अक्सर स्कूल से घर पर अपने बॉक्स में एसएसएच करता हूं, लेकिन आम तौर पर जब मैं कक्षाएं बदलता हूं और मेरा कंप्यूटर निलंबित हो जाता है, तो पाइप टूटा जाएगा। हालांकि, एसएसएच बस ताला लगा - Ctrl+सी, Ctrl+z तथा Ctrl+ कोई प्रभाव नहीं है।

मेरे टर्मिनल को पुनरारंभ करना और एक नई स्क्रीन विंडो को बंद करने और फिर से बनाने के लिए और भी परेशान होना परेशान करना है।

तो मेरा सवाल है, क्या एसएसएच सही तरीके से मरने का एक आसान तरीका है (यानी जब पाइप "सामान्य रूप से" विफल हो जाती है तो यह टूटी हुई पाइप के बारे में एक संदेश से बाहर निकल जाएगी)? या क्या मुझे यह पता लगाना है कि पीआईडी ​​क्या है और इसे मैन्युअल रूप से मार डालो?


343
2018-03-11 16:22


मूल


अगर मैं एक सक्रिय एसएसएच सत्र से डिस्कनेक्ट हो गया, तो यह जम जाता है। मैं बस इसे मारता हूं और एक नया सत्र शुरू करता हूं। कोई जानकारी गुम नहीं है क्योंकि मैं जीएनयू स्क्रीन का उपयोग करता हूं। - Lekensteyn
मैं भी - स्क्रीन सबसे अच्छी है। लेकिन यह अभी भी परेशान करने के लिए परेशान है screen -x : पी - Wayne Werner
[mosh] (mosh.mit.edu) इस समस्या से बचने के लिए एक साफ विकल्प है। यह अंतःस्थापित इंटरनेट कनेक्टिविटी के साथ भी "जुड़ा रहता है"। - jaynp
@jaynp mosh (दो मिनट पहले से) का उपयोग करके मेरी कमी यह है कि मुझे नहीं पता कि इसे कैसे डिस्कनेक्ट किया जाए। मैं रिमोट होस्ट (एक आईआरसी बाउंसर के रूप में) पर एक tmux + irssi सत्र का उपयोग कर रहा हूं और मैं कभी-कभी डिस्कनेक्ट करना चाहता हूं (tmux + irssi चलते समय) और मैंने <enter> + ~ + के साथ किया था। एसएसएच का उपयोग करना लेकिन मॉश का उपयोग करके काम नहीं करेगा। - Pavel Šimerda


जवाब:


सामान्य कुंजी को अग्रेषित किया जाता है ssh सत्र, इसलिए उनमें से कोई भी काम नहीं करेगा। इसके बजाय, भागने के दृश्यों का उपयोग करें। वर्तमान सत्र को मारने के लिए बाद में मारा दर्ज करें ↵, ~,

इनमें से अधिक भागने के दृश्यों के साथ सूचीबद्ध किया जा सकता है दर्ज करें ↵, ~, ?:

Supported escape sequences:
  ~.  - terminate session
  ~B  - send a BREAK to the remote system
  ~R  - Request rekey (SSH protocol 2 only)
  ~#  - list forwarded connections
  ~?  - this message
  ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

आप मारकर एस्केप दृश्यों की सूची बंद कर सकते हैं दर्ज

ध्यान दें कि मारने के कारण ~~ का कारण बनता है ssh भेजने के लिए ~ इसे रोकने के बजाय, आप संबोधित कर सकते हैं एन नेस्ट ssh मारने से कनेक्शन ~  एन बार। (यह केवल लागू होता है ~एस कि सीधे एक का पालन करें दर्ज।) यही कहना है दर्ज~~~~~ एक समाप्त होता है ssh सत्र 5 परतें गहरी और अन्य 4 बरकरार रखती है।


478
2018-03-11 17:18



कीबोर्ड लेआउट के लिए जहां ~ एक है मृत कुंजी, कुंजी अनुक्रम है Enter  ~  Space  .। - Søren Løvborg
मैंने जोड़ा बचने के दृश्यों में से अधिक जो उपयोगी हो सकता है। :) - gertvdijk
ध्यान दें कि आपको लाइन को अपूर्ण करने की आवश्यकता है EscapeChar ~ में /etc/ssh/ssh_config (या ~/.ssh/ssh_config आप चाहें तो)। - Aditya M P
@Hitechcomputergeek Enter  ~  ~  . जबसे ~  ~ एक शाब्दिक भेजता है ~ आपके एसएसएच सत्र के माध्यम से, दूसरा एसएसएच सत्र इसे एक एकल टिल्डे के रूप में प्राप्त करेगा और इसकी व्याख्या करेगा . भागने के हिस्से के रूप में। 5 वें नेस्टेड एसएसएच सत्र को भेजने के लिए, बस अपने भागने अनुक्रम में 5 टिल्ड्स का उपयोग करें। - Score_Under
जीवन बदलने वाली ;) - artm


आप एप्लिकेशन-स्तर भी सेट अप करना चाहेंगे रखें- Alives एसएसएच के लिए रोकना यह कनेक्शन मुद्दों पर ठंड से। मेरे ~/.ssh/config इसमें शामिल है:

Host *
ServerAliveInterval 15
# ServerAliveCountMax 3

यह एसएसएच क्लाइंट हर 15 सेकंड में एप्लिकेशन-स्तरीय रख-रखाव भेजता है। जब भी उनमें से तीन लगातार विफल हो जाते हैं (डिफ़ॉल्ट ServerAliveCountMax), ग्राहक कनेक्शन को लटका और बंद कर देता है।

दूसरे विकल्प के लिए विरोध किया TCPKeepAlive, यह एन्क्रिप्टेड चैनल के भीतर चेक किया गया है और स्पूफबल नहीं है।


यह ध्यान दिया जा रहा है कि उन रख-रखाव भी मदद करते हैं, उहम, रखो लंबे समय से आइड्लिंग कनेक्शन जिंदा है, यानी आपको होने से रोकते हैं आधा बंद कर दिया घंटों के लिए लटकने वाले टीसीपी सत्र।

यदि आप नियमित रूप से इसमें भाग लेते हैं, तो मैं इस सुविधा को बदलने की अत्यधिक अनुशंसा करता हूं, लेकिन आपको इसे लागू होने वाले मामूली सुरक्षा जोखिम के बारे में भी पता होना चाहिए। ए ज्ञात-सादा पाठ हमले अगर हमलावर एक निष्क्रिय कनेक्शन के अंतराल और सामग्री को जानता है तो आसान हो सकता है। यह कारण हो सकता है कि यह डिफ़ॉल्ट रूप से क्यों सक्षम नहीं है।


51
2018-03-11 18:51



सुरक्षा को ध्यान में रखते हुए। आप पी सकते हैं और एसएसएच सेसियो खोले जा सकते हैं और पिछले 20 सालों में आपने जो प्रयोगशाला साझेदार काम किया है, वह सर्वर को हाइजैक करने और इसे नष्ट करने के लिए आपके सत्र का उपयोग कर सकता है ... जबकि आप अपने 10 मिनट के ब्रेक में पी रहे थे। - Luis Alvarado♦
@CYREX, आह? और डिफ़ॉल्ट विकल्प से कैसे बंद किया जा सकता है आपको अनुचित प्रयोगशाला भागीदारों से रोकने में मदद करता है? %) - ulidtko
@ulidtko: सेटिंग स्थापित करने का कोई कारण नहीं है ServerAliveInterval 1 तक ताकि एक खोया कनेक्शन तुरंत पता चला हो? - krlmlr
मैंने पद में सुधार हुआ इसके बारे में मेरे ज्ञान के साथ अन्य 'फिक्स' के साथ। मुझे लगता है कि यह नहीं है  प्रश्न का उत्तर दें क्योंकि यह पहले से टूटे हुए एक को ठीक करने के बजाय रोकने के बारे में अधिक है। - gertvdijk
@gertvdijk: धन्यवाद। मेरे लिए, यह बिना भी काम करता है Host लाइन। इसके अलावा, "आधुनिक एन्क्रिप्शन मानक जैसे आधुनिक सिफर वर्तमान में ज्ञात-सादे टेक्स्ट हमलों के लिए अतिसंवेदनशील नहीं हैं।" (आपके द्वारा जोड़े गए लिंक से) ... - krlmlr


जैसा कि geekosaur के जवाब में, भागने अनुक्रम में उल्लेख किया गया है ~. कनेक्शन समाप्त कर देगा।

बचने के दृश्यों की पूरी सूची और वे जो करते हैं उन्हें टाइप करके प्रदर्शित किया जा सकता है ~?:

Supported escape sequences:
  ~.  - terminate connection (and any multiplexed sessions)
  ~B  - send a BREAK to the remote system
  ~C  - open a command line
  ~R  - Request rekey (SSH protocol 2 only)
  ~^Z - suspend ssh
  ~#  - list forwarded connections
  ~&  - background ssh (when waiting for connections to terminate)
  ~?  - this message
  ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

39
2018-03-15 06:39



मैं भागने के दृश्यों की सूची कैसे बंद करूं? - kristianp
आप नहीं बचते हैं, इसके बाद भागने अनुक्रम सूची को प्रिंट करता है, यह अगले को स्वीकार करने के लिए तैयार है। - Tejas Kale