सवाल मैं एसएसएच कनेक्शन से कैसे बाहर निकल सकता हूं?


मैं एसएसएच के माध्यम से एक सर्वर से कनेक्ट कर रहा हूं ताकि एक सॉकेट सर्वर को एक संदेश भेजकर संदेश भेज सकें:

एसएसएच 181.169.1.2-पी 5566

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

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


193
2017-08-28 14:29


मूल




जवाब:


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

दो तरीके:

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

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

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

$ man 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.

78
2017-09-16 21:57



मुझे यह नहीं पता कि "हम यह कैसे जानते हैं" अनुभाग विशेष रूप से सहायक है, क्योंकि मेरे लिए इसका तात्पर्य है कि कुछ प्रकार के स्पष्ट-से-समाधान समाधान हैं, जब मुझे यह विशेष रूप से सहज नहीं लगता है कि मैं "मनुष्य एसएस "डिस्कनेक्ट करने के तरीके को खोजने के लिए। उदाहरण के लिए, मुझे "बाहर निकलने" कैसे मिलेगा? मैं सहमत हूं कि जब आप कर सकते हैं तो मैन पेजों की जांच करने की पुष्टि करना अच्छा होता है। - Alexander Pritchard
@AlexanderPritchard मैंने अपने उत्तर को और सावधानीपूर्वक समझाने के लिए अद्यतन किया है कि हम यहां क्या कर रहे हैं। यदि आपको मैन पेज को समझना मुश्किल लगता है, तो रखरखाव के साथ कोई समस्या दर्ज करें, या इससे भी बेहतर, एक (अयोग्यतापूर्वक अच्छा) सुधार के साथ पुल अनुरोध सबमिट करें। - Aaron Hall
यह सिद्धांत में अच्छा लगता है, लेकिन व्यावहारिक रूप से, कई लोग इन आदेशों को नेविगेट करने का तरीका समझने के लिए संघर्ष करते हैं क्योंकि यहां तक ​​कि यह जानकर कि आप जो जानकारी चाहते हैं उसे देखना है, लोगों के पास संदर्भ नहीं है। रखरखाव के साथ एक मुद्दा दर्ज करना और सुधार के साथ पुल अनुरोध जमा करना इससे आगे भी आगे जाता है। मैं तर्क नहीं देता कि मैन पेज उपयोगी हैं, लेकिन अगर वे निश्चित रूप से उपयोगी होते हैं क्योंकि कुछ उन्हें लगता है, तो मैं स्टैक एक्सचेंज का उपयोग नहीं करूँगा। मैं स्पष्ट होना चाहता हूं कि मुझे लगता है कि आपका जवाब ठीक है, और लोगों को मैन पेजों की जांच करनी चाहिए, लेकिन वे सभी बेहद उपयोगी नहीं हैं। - Alexander Pritchard
"अगर वे निश्चित रूप से उपयोगी थे क्योंकि कुछ उन्हें लगते हैं, तो मैं स्टैक एक्सचेंज का उपयोग नहीं करूँगा।" मैं सहमत हूं, और यही कारण है कि मैं अच्छे जवाब लिखने की कोशिश करता हूं। संदर्भ स्रोतों का हवाला देते हुए और उद्धरण देना किसी को भी उस स्रोत से पहले से पढ़ने के लिए मूर्ख या बुरा महसूस नहीं करना है, यह और सबूत प्रदान करने के लिए किया जाता है कि अन्यथा वास्तव में तथ्यों का एक अनुमानित दावा क्या होगा, साथ ही साथ उपयोगकर्ता को सूचित करें प्रासंगिक जानकारी संग्रहीत की जा सकती है। आप जानना चाहते हैं कि आप अर्थपूर्ण रूप से सही चीज कर रहे हैं, साथ ही यह जानकर कि यह काम करता है। - Aaron Hall
ध्यान दें कि अगर ~ आपके कीबोर्ड लेआउट में एक मृत कुंजी है जिसे आपको टाइप करना है ~ . - kasperd


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

अगर यह काम नहीं करता है, हालांकि ...

एसएसएच एस्केप कैरेक्टर और डिसकनेक्ट अनुक्रम

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

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

दर्ज~

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

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

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

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

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


258
2017-07-17 09:26



जब आप इसे बेकार जटिल बना सकते हैं तो इसे आसान क्यों बनाएं? - MariusMatutiae
@MariusMatutiae ओपी ने एक ऐसे मामले की मांग की जहां प्रवेश करने के लिए कोई दूरस्थ शेल नहीं था exit या Ctrl-D, लेकिन सिर्फ एक सुनवाई की प्रक्रिया है। मैंने स्पष्ट रूप से कहा कि मेरा समाधान एक सत्र के लिए उपयुक्त है जो फंस गया है और बाहर नहीं किया जा सकता है। मैंने इसे और स्पष्ट करने की कोशिश की, उम्मीद है कि अब देखना आसान है। - Dubu
मैं उलझन में था, लेकिन ~. बिना रिक्त स्थान के बिल्कुल वही था जो मुझे चाहिए, धन्यवाद! :) - Jamey
स्विस जर्मन कीबोर्ड लेआउट में, टिल्डे AltGr + ^ दबाकर उत्पन्न होता है (प्लस यह अवरुद्ध कुंजी है)। इस वजह से, ऐसा लगता है कि बचने का अनुक्रम काम नहीं करता है। क्या किसी को स्विस जर्मन में डिफ़ॉल्ट भागने का तरीका पता है? - Daniel Alder
@Dobu कारण मिला कि यह पहले क्यों काम नहीं किया। यदि आप पहले से ही उसी पंक्ति में टाइप करते हैं (जो आप परीक्षण कर रहे हैं तो आसानी से होता है), निम्नलिखित ~। अनुक्रमों को नजरअंदाज कर दिया जाता है। पहले रिटर्न प्रेस करना पड़ा ... - Daniel Alder


क्या आप एसएसएच खोल से बाहर निकलना चाहते हैं?

आपको लिखना आता है exit और मारा दर्ज, या उपयोग करें Ctrl+डी 


33
2017-08-28 18:37



"बाहर निकलने" ने मुझे मदद की क्योंकि ctrl + d VNC व्यूअर में काम नहीं किया ... धन्यवाद - raj gupta
यह उन मामलों में काम नहीं करता है जहां मशीन फ्रीज या गायब हो जाती है या एप्लिकेशन किसी भी इनपुट का जवाब नहीं देता है - Daniel Alder


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


11
2018-04-14 15:00





तुम लिख सकते हो logout कंसोल लाइन में (और हिट दर्ज बेशक)।


4
2017-07-17 07:12





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

समर्थित भागने के दृश्य:

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

(ध्यान दें कि भागने केवल एक नई लाइन के तुरंत बाद पहचाने जाते हैं।) आप मारकर एस्केप दृश्यों की सूची बंद कर सकते हैं दर्ज


4
2018-06-14 22:26





मुझे लगता है कि सवाल का पर्याप्त उत्तर दिया गया है, लेकिन मैं यह जोड़ना चाहता हूं कि मैं देखता हूं कि आप इस सर्वर से पोर्ट 5566 पर एसएसएच के माध्यम से कनेक्ट हो रहे हैं। मैंने एक बार पढ़ा इस साइट जो अप्रतिबंधित बंदरगाहों पर एसएसएच के माध्यम से संचार (1023 से ऊपर सबकुछ) असुरक्षित है।

जब आप एक गैर-रूट उपयोगकर्ता (कोई भी यूआईडी 0 नहीं है) के रूप में सिस्टम पर लॉग ऑन होते हैं, तो आप 1024 से नीचे एक सूची टीसीपी या यूडीपी पोर्ट नहीं बना सकते हैं। ऐसा इसलिए है क्योंकि 1024 से नीचे पोर्ट नंबर तथाकथित विशेषाधिकृत बंदरगाह हैं और केवल हो सकते हैं जड़ के रूप में चल रहे रूट या प्रक्रियाओं द्वारा खोला गया। तो उदाहरण के लिए, जब आपका वेबसर्वर (अपाचे, nginx इत्यादि) शुरू होगा, यह पोर्ट 80 के लिए एक सुनवाई कनेक्शन खोलने के लिए विशेषाधिकार प्राप्त रूट उपयोगकर्ता के रूप में ऐसा करेगा (पोर्ट जो डिफ़ॉल्ट रूप से HTTP ट्रैफ़िक के लिए उपयोग किया जाएगा)। अब, जैसे ही बंदरगाह खोला जाता है और रूट के रूप में किए जाने वाले हर चीज को पूरा किया जाता है, वेबसर्वर एक गैर-विशेषाधिकार प्राप्त उपयोगकर्ता (या तो www-data, apache, या कोई भी उपयोगकर्ता) पर वापस आ जाएगा। उस बिंदु से, जब कुछ बुरा हो रहा है, यह केवल उस उपयोगकर्ता के अधिकारों तक ही सीमित है। अब, एसएसएच पर वापस जाएं: जब हम पोर्ट 22 पर एसएसएच शुरू करते हैं, तो हम इस तथ्य के बारे में जानते हैं कि यह रूट या रूट-प्रोसेस द्वारा किया जाता है क्योंकि कोई भी अन्य उपयोगकर्ता संभवतः उस बंदरगाह को खोल सकता है। लेकिन क्या होता है जब हम एसएसएच को पोर्ट 2222 पर ले जाते हैं? यह बंदरगाह किसी विशेषाधिकार प्राप्त खाते के बिना खोला जा सकता है, जिसका अर्थ है कि मैं एक साधारण स्क्रिप्ट लिख सकता हूं जो पोर्ट 2222 को सुनता है और आपके पासवर्ड कैप्चर करने के लिए एसएसएच की नकल करता है। 

तो जब मैं खुद पोर्ट बंद करता हूं तो मैं हमेशा 1024 से नीचे एक पोर्ट का उपयोग करता हूं जो पहले से ही अन्य मानक सॉफ्टवेयर द्वारा उपयोग नहीं किया जाता है। पर एक अच्छी सूची है विकिपीडिया इसके लिए।

लेख के लेखक का मानना ​​है कि एसएसएच बंदरगाह को बदलना संगतता कारणों से बिल्कुल नहीं किया जाना चाहिए।

एक और मुद्दा: कई निगमों में आने वाली और जाने वाली फायरवॉल हैं, जिसका अर्थ है कि आप किसी भी साइट पर किसी भी यादृच्छिक बंदरगाह पर नहीं जा सकते हैं और इसे काम करने की उम्मीद कर सकते हैं। बंदरगाह 22 जैसे कुछ सुरक्षित बंदरगाहों को अक्सर उस से मुक्त किया जाता है, जबकि बंदरगाह 25 या 110 जैसे अन्य बंदरगाहों को अवरुद्ध कर दिया जाता है।

मैं व्यक्तिगत रूप से सोचता हूं कि उपयोग के मामले हैं जहां यह काम में आता है। उदाहरण के लिए, जब आप या छोटे समूह समूह एसएसएच के माध्यम से सर्वर से कनेक्ट होते हैं, तो आप स्वचालित ब्रूट फोर्स हमलों को लॉग करते हैं और आप लॉग को साफ रखना चाहते हैं।


4
2017-07-19 06:59



निश्चित रूप से ... हालांकि यह बहुत सारे पाठ है और मैं स्पैम नहीं करना चाहता था। :) लेकिन आप तर्क एक अच्छा है। - Ogier Schelvis
मेरे अनुभव से जो आप यहां लिख रहे हैं वह आंशिक अधिकार है, लेकिन हाँ, सभी को आरक्षित बंदरगाहों के बारे में इस तथ्य पर विचार करना चाहिए, वैसे भी जो समस्या नहीं थी। हालांकि, आपके उत्तर के लिए धन्यवाद! - Andreea
यदि कोई ऐसा हिस्सा है जो सही नहीं है, तो मैं उत्सुक हूं कि यह क्या है। - Ogier Schelvis
मैं आपको पहले व्यक्ति दूंगा: आपको 1024 से नीचे एक पोर्ट का उपयोग नहीं करना चाहिए; प्रयुक्त बंदरगाहों की सूची शून्य से शुरू होती है। इसे 63737 से ऊपर बंदरगाहों का उपयोग करने के लिए पुनः संयोजित किया गया है। लेकिन आपको इस तथ्य पर विचार करना चाहिए कि यदि आपने अपने सर्वर पर स्थापित नहीं किया है, उदाहरण के लिए, पोलिपो जो 8123 पोर्ट का उपयोग करता है, तब तक इसका उपयोग करने के लिए स्वीकार्य है, जब तक कि पोलिपो स्थापित नहीं होता है (और तो पोर्ट को बदलने के लिए कोई भी याद नहीं करता है: पी) - Andreea
यहां क्या गलत हो सकता है: वर्णित चिंता का विषय स्थानीय हमले कर रहा है। उम्मीद है कि मुख्य आधारभूत संरचना उपकरणों पर लॉग इन व्यवस्थापक विश्वसनीय हैं। नीचे से 1024 से ऊपर कई और बंदरगाह हैं। तो एक उच्च बंदरगाह पर एक सेवा छिपाने से रिमोट पोर्ट स्कैनर द्वारा देखे जाने / रोकने में मदद मिल सकती है जो अक्सर उपयोग किए जाने वाले बंदरगाहों पर ध्यान केंद्रित करती है। अगर कोई आपके पोर्ट बंदरगाहों को स्कैन कर रहा है, तो एक आईडीएस एक अलर्ट सेट कर सकता है (और शायद आईपीएस तकनीक तैनात कर सकता है)। <1024 तक सीमित आपके बचावकर्ताओं (विश्वसनीय स्थानीय व्यवस्थापक) को प्रतिबंधित करता है और अधिक संभावनाओं और कम भरोसेमंद हमले के लिए चीजों को संकुचित करता है वेक्टर: रिमोट - TOOGAM


मैक ओ एस: जब एसएसएच अनुक्रम निम्नलिखित अनुक्रम का उपयोग करता है:

ENTER 
SHIFT+`
.

कहा पे: shift + `  पैदा करता है ~ (टिल्ड चरित्र)


2
2018-03-29 17:25