जब मेरा SSH सत्र अटक जाता है तो मैं क्या कर सकता हूं?


109

कभी-कभी टर्मिनल में मेरा ssh सत्र लटक जाता है। मैं ssh सत्र से कैसे बाहर निकल सकता हूं और पुन: कनेक्ट कर सकता हूं?

जवाबों:


195

~.लाइन की शुरुआत में टाइप (यानी टिल्ड, पीरियड)। दूसरे शब्दों में Enter, तब ~, तब दबाएँ .। (कुछ भाषाओं में, आपको वर्ण को दबाने Shiftया Altदर्ज करने की आवश्यकता हो सकती है ~।)

सामान्यतया, ~SSH सत्र में वर्ण एक एस्केप चरित्र है जब आप इसे एक पंक्ति की शुरुआत में टाइप करते हैं। Enterफिर ~?एस्केप कमांड की सूची देखने के लिए टाइप करें। सबसे आम हैं

  • ~. कनेक्शन समाप्त करने के लिए
  • ~^Z( ~फिर दबाएँ Ctrl+ Z) कनेक्शन निलंबित करने के लिए और स्थानीय रूप से एक कमांड टाइप करें ( fgSSH सत्र में वापस आने के लिए कमांड चलाएँ )

यदि आप एक पंक्ति की शुरुआत में एक टिल्ड चाहते हैं, तो ~दो बार दबाएं ।


7

आपको ssh सत्र से बाहर निकलने के exitलिए बस प्रॉम्प्ट पर टाइप करना होगा ।

डालने का प्रयास करें Shift+ `+.


2
यह अब उपयोगकर्ता इनपुट को स्वीकार नहीं कर रहा है, यह सचमुच बंद हो गया है। उबंटू में एक कीबोर्ड संयोजन है जो सत्र को समाप्त करता है जिसे आप इन जैसे मामलों में उपयोग कर सकते हैं। थोड़ी देर के बाद सत्र ने कहा कि broken-pipeमैं इंतजार नहीं करूंगा।
किट सुंडे

1
@ किट मैंने अपना जवाब तय कर दिया। उसके लिए माफ़ करना। मुझे नहीं पता था कि आपका मतलब पूरी तरह से रुका हुआ एसएसएच सत्र था।
daviesgeek

मैं आमतौर पर इसके समय समाप्त होने की प्रतीक्षा करता हूं। इस तथ्य के बावजूद कि मैं इन आदेशों के बारे में जानता हूं, मैं हमेशा यह भूल जाता हूं कि मैं अपने शेल वापस पाने की प्रक्रिया को तेज करने के लिए उनका उपयोग कर सकता हूं। नोट @ उत्तर का भी जवाब दें, आपको SSH मैनपेज (आधे रास्ते से थोड़ा अधिक) में और इससे पहले कि ~. आप एक सक्रिय / कनेक्टेड SSH सत्र में और अधिक सीख सकते हैं, इससे पहले कि आप एक बार Enter / Return को दबाएं। पहले एक बार प्रवेश करने के लिए ~?
जेसन सलज

7

यदि आपका सत्र लटका हुआ है और संकेत अब उत्तरदायी नहीं है तो आप टर्मिनल उदाहरण और उस उदाहरण से जुड़ी सभी बाल प्रक्रियाओं को मार सकते हैं, जिनमें से आपका ssh सत्र एक है, इसके साथ कुल्हाड़ी मिलनी चाहिए।

यदि आप वास्तव में पूरी तरह से बनना चाहते हैं, तो आप एक नया टर्मिनल उदाहरण खोल सकते हैं, प्रक्रिया सूची में ssh सत्रों की तलाश कर सकते हैं और कमांड लाइन के माध्यम से उन्हें मार सकते हैं:

> ps -ef  |grep ssh
501  1332   142   0 20Dec11 ??         0:01.33 /usr/bin/ssh-agent -l
501 57172 57150   0  1:58pm ttys000    0:00.01 grep ssh
501 57139 57133   0  1:57pm ttys002    0:00.03 ssh -i/Users/ian/code/ec2-keys/id_rsa-gsg-keypair someuser@someinstance.amazonaws.com

> kill 57139

अगर वह काम नहीं करता है:

> kill -9 57139

ssh-agentप्रक्रिया को मत मारो ।

या आप गतिविधि मॉनिटर खोल सकते हैं और सत्रों के लिए खोज कर सकते हैं और उनके लिए किल बटन दबा सकते हैं:

गतिविधि मॉनिटर ssh सत्रों के लिए फ़िल्टरिंग


+1, यह वही है जो मैं करता हूं। अक्सर जहां मैंने एक सत्र चलाना छोड़ दिया है, और फिर या तो कनेक्शन गलती से टूट जाता है या मैं लैपटॉप को सोता हूं, इससे एसएचएस जम जाता है। मैं एक नया कंसोल टैब खोलता हूं और ssh प्रक्रिया के PID को मारता हूं (या ssh टैब को बंद करता
हूं

क्या कीबोर्ड शॉर्टकट का उपयोग आपके मैक पर बिना थके प्रक्रिया को मार देता है?
राफेल बुगाजेव्स्की

1
का उपयोग करें ~.। ऊपर देखो।
स्नोक्रैश

0

~। काम करता है, हालांकि यह पूरी तरह से अटक जाने जैसा दिखता है, ssh कनेक्शन को रोकता है और आप इसे फिर से शुरू कर सकते हैं, लेकिन मेरे कीबोर्ड में मुझे Alt + ~ फिर स्पेस और फिर दबाना होगा।

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