मैं SSH कनेक्शन से कैसे बाहर निकलूं?


245

मैं SSH के माध्यम से एक सर्वर से कनेक्ट कर रहा हूँ जैसे एक कमांड का उपयोग करके सॉकेट सर्वर को एक संदेश भेजने के लिए:

ssh 181.169.1.2 -p 5566

कनेक्शन स्थापित होने के बाद और मैं संदेश लिखता हूं और इसे भेजता हूं मैं टेक्स्ट मोड से बाहर नहीं निकल सकता। मुझे केवल अधिक पाठ दर्ज करने की अनुमति है और यह बात है।

क्या कोई कमांड या कुंजी संयोजन है जो मुझे कमांड मोड पर लौटने की अनुमति देता है?

जवाबों:


156

मैं SSH कनेक्शन से कैसे बाहर निकलूं?

दो तरीके:

  • शेल सत्र को बंद करना, जैसे कि exitइसके बाद Enter, या Ctrl- dआमतौर पर आपको sshसत्र को सामान्य रूप से बाहर निकलने की अनुमति देता है ,
  • उस मामले में जहां आपके पास एक बुरा कनेक्शन है और शेल गैर-जिम्मेदार है, Enterकुंजी को हिट करें , फिर टाइप करें ~.और ssh को तुरंत बंद करना चाहिए और आपको अपने कमांड प्रॉम्प्ट पर वापस करना चाहिए।

पहला विकल्प सहज होना चाहिए, लेकिन हम बाद के विकल्प को कैसे जानते हैं?

हम इस जानकारी को मैन पेज के सावधानीपूर्वक पढ़ने से जान सकते हैं।

$ man ssh

हमें SSH दस्तावेज़ीकरण देता है , जिसमें भागने के पात्रों पर निम्न अनुभाग है:

ESCAPE CHARACTERS
     When a pseudo-terminal has been requested, ssh supports a number of
     functions through the use of an escape character.

     A single tilde character can be sent as ~~ or by following the tilde by
     a character other than those described below.  The escape character
     must always follow a newline to be interpreted as special.  The escape
     character can be changed in configuration files using the EscapeChar
     configuration directive or on the command line by the -e option.

     The supported escapes (assuming the default ‘~’) are:

     ~.      Disconnect.

     ~^Z     Background ssh.

     ~#      List forwarded connections.

     ~&      Background ssh at logout when waiting for forwarded connection
             / X11 sessions to terminate.

     ~?      Display a list of escape characters.

     ~B      Send a BREAK to the remote system (only useful if the peer sup‐
             ports it).

     ~C      Open command line.  Currently this allows the addition of port
             forwardings using the -L, -R and -D options (see above).  It
             also allows the cancellation of existing port-forwardings with
             -KL[bind_address:]port for local, -KR[bind_address:]port for
             remote and -KD[bind_address:]port for dynamic port-forwardings.
             !command allows the user to execute a local command if the
             PermitLocalCommand option is enabled in ssh_config(5).  Basic
             help is available, using the -h option.

     ~R      Request rekeying of the connection (only useful if the peer
             supports it).

     ~V      Decrease the verbosity (LogLevel) when errors are being written
             to stderr.

     ~v      Increase the verbosity (LogLevel) when errors are being written
             to stderr.

मुझे यह नहीं पता है कि "हम इसे कैसे जानते हैं" खंड विशेष रूप से उपयोगी है, क्योंकि मेरे लिए इसका मतलब है कि किसी प्रकार का स्पष्ट समाधान है, जब मुझे यह विशेष रूप से सहज नहीं लगता है कि मैं "आदमी ssh" "डिस्कनेक्ट करने का तरीका खोजने के लिए। उदाहरण के लिए, मुझे "निकास" कैसे मिला होगा? मैं मानता हूं कि जब आप कर सकते हैं तो मैन पेजों को दोबारा जांचना अच्छा है।
अलेक्जेंडर प्रिचर्ड

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

1
यह सिद्धांत में अच्छा लगता है, लेकिन व्यवहार में, बहुत से लोग यह पता लगाने के लिए संघर्ष करते हैं कि इन आदेशों को कैसे नेविगेट किया जाए क्योंकि यहां तक ​​कि यह जानना कि आप जिस जानकारी को चाहते हैं वह संदर्भ के लोगों को कैसे दिखना है। सुधारकों के साथ एक समस्या दर्ज करना और सुधार के साथ पुल अनुरोध सबमिट करना इससे आगे भी आगे बढ़ता है। मैं यह तर्क नहीं देता कि मैन पेज उपयोगी होते हैं, लेकिन अगर वे निश्चित रूप से उपयोगी होते हैं जैसा कि कुछ उन्हें लगता है, तो मैं रैक एक्सचेंज का उपयोग नहीं करूंगा। मैं स्पष्ट होना चाहता हूं मुझे लगता है कि आपका उत्तर ठीक है, और यह कि लोगों को मैन पेजों की जांच करनी चाहिए, लेकिन वे सभी उपयोगी नहीं हैं।
अलेक्जेंडर प्रिचर्ड

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

278

संक्षिप्त उत्तर: प्रकार exit

यदि वह काम नहीं करता है, लेकिन ...

SSH एस्केप कैरेक्टर और डिस्कनेक्ट सीक्वेंस

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

यदि आप एक इंटरेक्टिव ओपनएसएसएच सत्र को समाप्त करना चाहते हैं जो अटका हुआ है और दूरस्थ तरफ एक शेल में प्रवेश करके exitया बाहर नहीं निकाला जा सकता हैCtrlD , तो आप ~एक डॉट द्वारा पीछा कर सकते हैं .। इनपुट लाइन की शुरुआत में एस्केप चरित्र दर्ज करना सुनिश्चित करने के लिए, आपको पहले एंटर दबाना चाहिए। तो निम्नलिखित मामलों में ज्यादातर मामलों में एक SSH सत्र समाप्त होगा:

Enter~.

अन्य एस्केप अनुक्रम

ओपनएसएसएच, उदाहरण के लिए, इसके अलावा अन्य भागने के क्रम प्रदान करता है ~.~?सत्र के दौरान प्रवेश करने पर आपको एक सूची देनी चाहिए। कुछ उदाहरण:

  • ~पीछा Ctrl-Zसत्र निलंबित,
  • ~& इसे सीधे पृष्ठभूमि में रखता है,
  • ~# इस सत्र में अग्रेषित कनेक्शनों की एक सूची देता है।
  • यदि आप एक पंक्ति की शुरुआत में बस एक टिल्ड दर्ज करना चाहते हैं, तो आपको इसे दोगुना करना होगा ~~:।

कमांड लाइन विकल्प का उपयोग करके एस्केप कैरेक्टर को बदला जा सकता है -e। यदि आप विशेष मूल्य निर्धारित करते हैं -e none, तो बचना अक्षम है और सत्र पूरी तरह से पारदर्शी है।

कमांड लाइन विकल्प के तहत ssh (जो www.openssh.org से संदर्भित है ) पर ओपनबीएसडी मैन पेज भी देखें-e


2
जब आप इसे बेकार में जटिल कर सकते हैं तो इसे सरल क्यों बनाएं?
मारियसमाटुटिया

7
@MariusMatutiae ओपी एक मामले में जहां कोई रिमोट खोल दर्ज करने के लिए किया गया था के लिए कहा exitया Ctrl-Dहै, लेकिन सिर्फ एक सुन प्रक्रिया। मैंने स्पष्ट रूप से कहा कि मेरा समाधान एक सत्र के लिए अनुकूल है जो अटका हुआ है और इसे बाहर नहीं निकाला जा सकता है । मैंने इसे और अधिक स्पष्ट करने की कोशिश की, आशा है कि अब यह देखना आसान है।
डब्बू

5
मुझे संदेह था, लेकिन ~.बिना रिक्त स्थान के मुझे वास्तव में क्या चाहिए था, धन्यवाद! :)
Jamey

2
स्विस जर्मन कीबोर्ड लेआउट में, AltGr + ^ (प्लस यह एक ब्लॉकिंग कुंजी है) दबाकर टिल्ड उत्पन्न होता है। इस वजह से, ऐसा लगता है कि भागने का क्रम काम नहीं करता है। क्या कोई जानता है कि स्विस जर्मन में डिफ़ॉल्ट पलायन कैसे टाइप करें?
डैनियल एल्डर

4
@ डोबू को पहले काम नहीं करने का कारण मिला। यदि आप पहले से ही एक ही पंक्ति में टाइप कर रहे हैं (जो कि आसानी से यदि आप परीक्षण कर रहे हैं) तो निम्न ~। दृश्यों को अनदेखा किया जाता है। पहले रिटर्न प्रेस करना था ...
डैनियल एल्डर

32

क्या आप SSH शेल से बाहर निकलना चाहते हैं?

आप टाइप exitऔर हिट कर सकते हैं Enter, या उपयोग कर सकते हैं Ctrl+D


1
"बाहर निकलें" ने मुझे ctrl + d के रूप में वीएनसी दर्शक के रूप में काम नहीं करने में मदद की ... धन्यवाद
राज गुप्ता

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

11

बस टाइप exitया logout(फिर एंटर ऑफ कोर्स) दोनों काम करेंगे।


4

ये समर्थित वर्ण हैं जो विभिन्न विकल्प प्रदान करते हैं जिनके साथ आप ssh के साथ खेल सकते हैं।

समर्थित बच क्रम:

 ~.  - 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

(ध्यान दें कि पलायन एक नई सीमा के तुरंत बाद पहचाना जाता है।) आप टकराने से एस्केप अनुक्रम की सूची को बंद कर सकते हैं Enter


3

आप logoutकंसोल लाइन (और Enterनिश्चित रूप से हिट ) में लिख सकते हैं ।


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