सवाल डिस्कनेक्ट किए गए एसएसएच सत्र से फिर से कनेक्ट कैसे करें


क्या एसएसएच सत्र से कनेक्ट करने का कोई तरीका है जो डिस्कनेक्ट हो गया था? हमें एक दूरस्थ साइट पर हमारे नेटवर्क कनेक्शन के साथ समस्याएं आ रही हैं जिन्हें हम अलग से काम कर रहे हैं; हालांकि, दूरस्थ समय पर सर्वर से कनेक्ट होने पर, खोए हुए पैकेट के कारण हम बड़ी संख्या में डिस्कनेक्ट अनुभव करते हैं। कई बार सत्र थोड़ी देर के लिए सक्रिय रहता है, और कभी-कभी यह कुछ क्रियाओं के बीच होता है (फ़ाइल संपादन, कुछ प्रक्रिया चल रहा है, आदि ...) यदि संभव हो तो मुझे पुनरारंभ करने के बजाय वापस जाने की आवश्यकता है।


141
2018-06-04 13:04


मूल


मुझे विश्वास नहीं है कि किसी ने भी उल्लेख नहीं किया है mosh.mit.edu - jwbensley
@javano: मैंने कभी इसके बारे में नहीं सुना है। इसे एक उत्तर के रूप में जोड़ें! - kbyrd
@kbyrd किया है;) - jwbensley
एक समान सवाल पूछा गया था unix.stackexchange.com/questions/105001/... पहली जगह में डिस्कनेक्शन के आसपास काम करने के तरीके के बारे में कुछ संकेतों के साथ ... - anarcat


जवाब:


अद्यतन: वास्तविक उत्तर के लिए नीचे शून्य_आर का उत्तर देखें

यह एक जवाब नहीं है, लेकिन एक कामकाज है। उपयोग स्क्रीन

जब आप पहली बार लॉग इन करते हैं, तो स्क्रीन चलाएं। आपको एक और खोल मिलता है, उसमें कमांड चलाएं। यदि आप डिस्कनेक्ट हैं, तो स्क्रीन प्रक्रिया टर्मिनल को जिंदा रखती है ताकि आपका खोल और प्रक्रियाएं चल रही हों। जब आप पुनः कनेक्ट करते हैं, तो फिर से शुरू करने के लिए 'स्क्रीन-आर' चलाएं।

स्क्रीन को कॉन्फ़िगर करने और उपयोग करने के लिए एक गुच्छा अधिक है, लेकिन उपरोक्त को आपकी समस्या का समाधान करना चाहिए।


126
2018-06-04 13:08



या tmux - एक 'कूलर' स्क्रीन का उपयोग करें, मैंने दोनों का उपयोग किया है और बहुत अधिक tmux पसंद करते हैं क्योंकि आप अच्छी तरह से शब्द को विभाजित कर सकते हैं। - John Hunt
मुझे ढूंढने में खुशी हुई screen पहले से ही मेरे उबंटू 12.x पर स्थापित किया गया था, इसलिए यदि आप सुनिश्चित नहीं हैं कि बस इस कमांड को आज़माएं, तो उसने फिर से कनेक्ट किया और फिर से शुरू किया ऐसा रिलीज से अपग्रेड किया गया प्रक्रिया: सुडो स्क्रीन-डी-आर - bjm88
@ Bjm88, sudo केवल तभी इस्तेमाल किया जाना चाहिए जब मूल स्क्रीन सत्र सुडो के साथ शुरू किया गया हो। अन्यथा यह वापस आ जाएगा जैसे कोई स्क्रीन सत्र मौजूद नहीं है: There is no screen to be detached - Noam Manos


Serveride sshd.conf पर उचित मानों के लिए ClientAliveInterval (उदा। 60) और TCPKeepAlive (हाँ या नहीं) सेट करने का प्रयास करें।

यदि कनेक्शन मिनटों के लिए खो जाता है तो भी यह आपके सत्र को जीवित रखना चाहिए।


118
2018-06-04 13:08



अब तक, आप वास्तव में एक कामकाज के रूप में स्क्रीन का सुझाव देने के बजाय सवाल का जवाब देने वाले एकमात्र व्यक्ति हैं। - kbyrd
अच्छा निर्णय। सिस्को एएसए / पीईक्स फ़ायरवॉल को पार करते समय हमने इस विधि को कणपूर्ण रूप से उपयोगी पाया है, जो डिफ़ॉल्ट रूप से टीसीपी कनेक्शन से बाहर निकलने के लिए प्यार करता है। - Mike Pountney
शायद यह पूछने का सही स्थान नहीं है, लेकिन क्या पोस्टर के जवाब स्विच करना संभव है? हमें इस जानकारी के साथ 'स्क्रीन' जवाब देना चाहिए (मेरा सबसे अच्छा नहीं है, मुझे माइक पेंटनी पसंद है, लेकिन मुझे प्रतिनिधि मिल गया)। - kbyrd
सिस्को वीपीएन कनेक्शन से कनेक्ट होने पर यह काम करेगा, और वीपीएन कनेक्शन खो गया है और फिर से स्थापित किया गया है? - Brent
मेरे लिए स्क्रीन सही काम करती है, मैं काम करने के लिए स्क्रीनिंग कार्य और काउंटीयूने से पुनः कनेक्ट कर सकता हूं - integratorIT


जैसा कि ऊपर उल्लेख किया गया है, जीएनयू स्क्रीन जाने का रास्ता है। यह आपको दूरस्थ स्क्रीन पर 'स्क्रीन सत्र' रखने की अनुमति देगा, जिसमें आप एकाधिक 'स्क्रीन विंडो' के माध्यम से एकाधिक कमांड चला सकते हैं। यदि आपके माता-पिता एसएसएच कनेक्शन मर जाते हैं तो यह बस अलग हो जाएगा, सभी उपप्रोसेसरों को जीवित और अच्छी तरह से चल रहा है।

'man screen'हमेशा आपका मित्र है, और ओएस पैकेज को'screen'अगर यह डिफ़ॉल्ट रूप से स्थापित नहीं है।

मूल बातें हैं:

  • एक स्क्रीन सत्र शुरू करें (आपके रिमोट होस्ट पर):

    $ screen
    
  • अपने स्क्रीन सत्र से डिस्कनेक्ट करें: Ctrl-A,

  • दोबारा लॉग इन करने के बाद अपने स्क्रीन सत्र से पुनः कनेक्ट करें:

    $ screen -d -r
    
  • एक और स्क्रीन 'विंडो' खोलें: Ctrl-A, सी

  • खुले स्क्रीन विंडोज़ के माध्यम से साइकिल: Ctrl-A, अंतरिक्ष

वहाँ है बहुत सारे स्क्रीन के साथ आप कूल सामान कर सकते हैं। मैं इसे 10 से अधिक वर्षों से उपयोग कर रहा हूं, और अभी भी नई सुविधाओं को ढूंढ रहा हूं। यह मेरी पसंदीदा यूनिक्स उपयोगिता है।


59
2018-06-04 13:19



हाँ, यह मेरे मुकाबले एक बेहतर जवाब है। - kbyrd
क्या मैं अभी भी डिस्कनेक्ट किए गए एसएसएच सत्र से कनेक्ट कर सकता हूं, अगर मैं अपने पीसी को रीबूट करता हूं जहां स्क्रीन चल रही है? - BarathVutukuri


मुझे विश्वास नहीं है कि किसी ने भी उल्लेख नहीं किया है MOSH;

मोश एक अलग प्रोटोकॉल है जो एसएसएच लॉगिन प्रक्रिया में शामिल हो सकता है, यह डिस्कनेक्शन के दिन, आईपी, उच्च विलंबता और अन्य दिनों के बाद आपके सत्र को जिंदा रखता है। यह होम पेज पर बेहतर समझाया गया है कि मैं इसे समझा सकता हूं इसलिए मैंने नीचे दिए गए विवरण की प्रतिलिपि बनाई है। मेरे अनुभव और सलाह यह है कि मैं इसे अपने एंड्रॉइड मोबाइल पर उपयोग करता हूं, यह यात्रा करते समय एक जीवन बचतकर्ता है और एसएसएच'इंग है। उदाहरण के लिए ट्रेन पर मोबाइल के साथ tethered जब मेरे लैपटॉप पर भी यही सच है। मैं नवीनतम संस्करण प्राप्त करने के लिए स्रोत से संकलन की अनुशंसा करता हूं, उबंटू के अंदर मेरे लिए रेपो संस्करण में कुछ परेशानियां हैं जो नवीनतम संस्करण (लेखन के समय) में तय की गई हैं।

मोश (मोबाइल खोल)

दूरस्थ टर्मिनल एप्लिकेशन जो रोमिंग की अनुमति देता है, अंतःक्रिया का समर्थन करता है   कनेक्टिविटी, और बुद्धिमान स्थानीय गूंज और लाइन संपादन प्रदान करता है   उपयोगकर्ता कीस्ट्रोक।

मोश एसएसएच के लिए एक प्रतिस्थापन है। यह अधिक मजबूत और उत्तरदायी है,   खासकर वाई-फाई, सेलुलर और लंबी दूरी के लिंक पर।

मोश मुफ्त सॉफ्टवेयर है, जीएनयू / लिनक्स, फ्रीबीएसडी, सोलारिस, मैक के लिए उपलब्ध है   ओएस एक्स, और एंड्रॉइड।

वेबसाइट से विशेषताएं:

  • आईपी ​​बदलें। जुड़े रहें: जब आप आगे बढ़ते हैं तो मोश स्वचालित रूप से घूमता है इंटरनेट कनेक्शन के बीच। ट्रेन में वाई-फाई का उपयोग करें, ईथरनेट ए में होटल, और एलटीई समुद्र तट पर: आप लॉग इन रहेंगे। अधिकांश नेटवर्क प्रोग्रामिंग एसएसएच और वेब सहित रोमिंग के बाद अपने कनेक्शन खो देते हैं जीमेल जैसे एप्स। मोश अलग है।

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

  • नेटवर्क अंतराल से छुटकारा पाएं: एसएसएच आपको अपना खुद का टाइपिंग दिखाने से पहले सर्वर के जवाब की प्रतीक्षा करता है। यह एक के लिए बना सकते हैं लुसी यूजर इंटरफेस। मोश अलग है: यह टाइपिंग के लिए तत्काल प्रतिक्रिया देता है, हटाना, और लाइन संपादन। यह अनुकूल रूप से करता है और पूर्ण स्क्रीन में भी काम करता है emacs और vim जैसे कार्यक्रम। खराब कनेक्शन पर, बकाया भविष्यवाणियों को रेखांकित किया गया है तो आप गुमराह नहीं किया जाएगा।

  • कोई विशेषाधिकार कोड नहीं कोई डेमॉन नहीं: मोश को स्थापित या चलाने के लिए आपको सुपरसियर होने की आवश्यकता नहीं है। ग्राहक और सर्वर हैं निष्पादन योग्य एक साधारण उपयोगकर्ता द्वारा चलाया जाता है और केवल कनेक्शन के जीवन के लिए रहता है।

  • वही लॉगिन विधि: मोश नेटवर्क बंदरगाहों पर नहीं सुनता है या उपयोगकर्ताओं को प्रमाणीकृत नहीं करता है। मॉश क्लाइंट लॉग इन करता है एसएसएच के माध्यम से सर्वर, और उपयोगकर्ता समान प्रमाण-पत्र प्रस्तुत करते हैं (उदा।, पासवर्ड, सार्वजनिक कुंजी) पहले जैसा। फिर मोश दूरस्थ रूप से मॉश-सर्वर चलाता है और यूडीपी पर इसे जोड़ता है।

  • आपके टर्मिनल के अंदर चलता है, लेकिन बेहतर है: मोश एक कमांड लाइन प्रोग्राम है, जैसे एसएसएच। आप इसे xterm, gnome-terminal के अंदर उपयोग कर सकते हैं, urxvt, टर्मिनल.एप, आईटर्म, emacs, स्क्रीन, या tmux। लेकिन मॉश को खरोंच से डिजाइन किया गया था और केवल एक चरित्र सेट का समर्थन करता है: यूटीएफ -8। यह अन्य टर्मिनल में यूनिकोड बग को ठीक करता है और एसएसएच में

  • नियंत्रण-सी महान काम करता है: एसएसएच के विपरीत, मॉश का यूडीपी-आधारित प्रोटोकॉल पैकेट नुकसान को सुदृढ़ रूप से संभालता है, और फ्रेम सेट करता है नेटवर्क स्थितियों के आधार पर दर। मोश नेटवर्क बफर भरता नहीं है, इसलिए कंट्रोल-सी
    हमेशा एक पलायन प्रक्रिया को रोकने के लिए काम करता है।


41
2017-11-24 13:01



मोश एक एसएसएच रैपर नहीं है - यह एक अलग प्रोटोकॉल है, लगभग पूरी तरह से एसएसएच से असंबंधित है (यह केवल लॉगिन के लिए एसएसएच का उपयोग करता है)। - jch
+1 बहुत सच है, मेरी गलती। - jwbensley
सुरक्षा के बारे में क्या, मध्य में आदमी? एन्क्रिप्शन? कुंजी विनिमय? - Nasir Iqbal


autossh आपका कनेक्शन देखता है और यदि यह नीचे चला जाता है, तो यह फिर से जुड़ जाता है। यह रखरखाव से अधिक विश्वसनीय है। यदि आप किसी स्क्रीन सत्र से कनेक्ट होते हैं, तो आप जहां से डिस्कनेक्ट होते हैं, वहां से आप जारी रहेंगे (देखें rscreen वह autossh के साथ आता है)


19
2018-06-06 09:11



एक कॉन्फ़िगर करने योग्य रखने योग्य के बाहर, यह आपको मूल रूप से किसी सत्र (फिर ओपी की तलाश में) से कनेक्ट करने की अनुमति नहीं देता है। लेकिन autossh उन ऐप्स के लिए वास्तव में सहायक हो सकता है जिन्हें एसएसएच सुरंगों, पोर्ट मैपिंग आदि की आवश्यकता होती है। - ives
हाँ autossh + स्क्रीन मीठा स्थान होगा। autossh है rscreen इसके लिए। - hayalci
ऑटोश मोश से बेहतर है। मैंने दोनों का उपयोग किया है। - Sridhar-Sarnobat
जेसी कीटिंग द्वारा उपयोग किए जाने के बारे में यहां एक ब्लॉग पोस्ट है स्क्रीन के साथ autossh। - sampablokuper


मैं आपकी समस्या को ठीक करने के लिए स्क्रीन इंस्टॉल और शुरू करूंगा। स्क्रीन आपको पिछले स्क्रीन सत्र से पुनः कनेक्ट करने देगी।

इसके अलावा, स्क्रीन आपको अपनी स्क्रीन को विभाजित करने, कंसोल आदि जैसी अच्छी चीजें करने देती है। आप अधिक जानकारी प्राप्त कर सकते हैं यहाँ तथा यहाँ

शुरुआत करने वालों के लिए, यदि आप डिस्कनेक्ट हो जाते हैं, तो आप इसका उपयोग कर सकते हैं

screen -ls

अपने सत्र देखने के लिए और

screen -r ${session} 

एक डिस्कनेक्ट एक से फिर से कनेक्ट करने के लिए।


9
2018-06-04 13:06





tmux

यह एक क्लासिक है। जब भी आप टर्मिनल से कनेक्शन खोने का जोखिम चलाते हैं तो इसका इस्तेमाल करें।

$ tmux
$ sh do_something_that_takes_forever

!! Connection fails so you reconnect once you notice

$ tmux ls
0: 1 windows (created Tue Aug 23 12:39:52 2011) [103x30]

$ tmux attach -t 0

बस इसी तरह, आप कार्रवाई में वापस आ गए हैं।


9
2018-04-06 01:24



अनेक अनेक धन्यवाद! मैं यह देख रहा था कि टीएमयूक्स के साथ ऐसा कैसे करें, क्योंकि ऐसा लगता है कि ज्यादातर लोग बेहतर विकल्प के रूप में क्या सोचते हैं। - CoolOppo


जैसा कि अन्य ने बताया है, स्क्रीन आमतौर पर इसके लिए सबसे अच्छा समाधान है और यह कई अन्य उपयोगी विशेषताओं को भी जोड़ती है।

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

देख http://tlug.dnho.net/?q=node/239 (या कई अन्य उदाहरणों के लिए Google को थोड़ा अलग तरीके से खोजते हैं)।


3
2018-06-04 13:47



उस लिंक में अच्छी लिपि, धन्यवाद! - palehorse


स्क्रीन के लिए एक और आधुनिक विकल्प, कुछ प्रकार के "वर्चुअलाइजेशन" के लिए उपलब्ध नहीं है (उदाहरण के लिए साइगविन में आपके पास "स्क्रीन" हो सकती है, लेकिन "tmux" जिस तरह से डिज़ाइन की गई है), लेकिन जहां भी आपके पास tmux इंस्टॉल करने का विकल्प है , मैं दृढ़ता से स्क्रीन के उस इंस्टेंट के लिए जाने की अनुशंसा करता हूं।


2
2018-03-23 11:44





यहां एक और गैर-स्क्रीन समाधान है।

पुट्टी ट्रे आपको ऐसा करने की इजाजत देता है, यह डिस्कनेक्ट विकल्प पर दोबारा जुड़ता है जो नियमित या पट्टी-एनजी में नहीं है

https://puttytray.goeswhere.com/

यह अन्य विकल्पों के साथ पुटी का कांटा है, कनेक्शन सेटिंग्स पर जाएं और 2 विकल्प हैं, एक 'कनेक्शन विफलता पर पुनः कनेक्ट करने का प्रयास' और 'स्टार्टअप पर पुनः कनेक्ट करने का प्रयास' के लिए एक है।


2
2018-01-20 10:08



Ehh। क्या यह किसी भी मौके से एक कीलॉगर और स्वचालित पीपीके एक्सफिल्टरेशन यूटिलिटी के साथ आता है? - Deer Hunter
मुझे लगता है कि आप यह पूछ रहे हैं कि यह किसी भी तरह से है, आपके विवरण चुराता है, यह पूरी तरह से खुला स्रोत है, यदि आप इसे देखना चाहते हैं तो स्रोत कोड जिथब पर उपलब्ध है github.com/FauxFaux/PuTTYTray काफी योगदानकर्ता हैं :) - munkiepus
महान चीयर्स :) - munkiepus


यदि आपका एसएसएच सत्र गिरने पर स्क्रीन आपके शेल सत्र को रिमोट सर्वर पर खुलती रहेगी, तो यह एसएसएच कनेक्शन की समस्या के बारे में कुछ भी नहीं करेगा। जैसा कि zero_r सुझाव देता है, एलीव्स और लंबे समय तक रखने के साथ अपने एसएसएच कनेक्शन को ट्यून करने का प्रयास करें।

मेरा सुझाव है कि आप खोए हुए पैकेटों के कारणों को ट्रैक कर सकते हैं जिससे समस्याएं आती हैं और इसके ठीक काम करने की बजाय ठीक हो जाती है।


1
2018-06-04 13:33



सलाह के लिये धन्यवाद। हम पैकेट नुकसान की मूल समस्या को ट्रैक करने पर काम कर रहे हैं, इसे समझने में बस कुछ समय लग रहा है (बहुत मुश्किल, यह एक!)। यह वास्तव में इस परेशानी अवधि के लिए एक काम है। कोई कभी नहीं जानता कि कुछ गिराए गए कनेक्शन का कारण बन जाएगा। - palehorse
यह बहुत शोर पैदा करेगा, लेकिन आप एसएसएच को स्ट्रेस के माध्यम से चलाने का प्रयास कर सकते हैं और देख सकते हैं कि एसएसएच कनेक्शन कब गिरता है / रिपोर्ट करता है। यह सिर्फ रिपोर्ट कर सकता है कि आप पहले से क्या जानते हैं, लेकिन कौन जानता है ... - David