سؤال كيف أقوم بالخروج من اتصال SSH؟


أنا بصدد الاتصال بخادم عبر SSH لإرسال رسالة إلى خادم مأخذ باستخدام أمر مثل:

ssh 181.169.1.2 -p 5566

بعد تأسيس الاتصال وكتابة الرسالة وإرسالها لا أستطيع الخروج من وضع النص. يُسمح لي فقط بإدخال المزيد من النص وهذا هو.

هل هناك أمر أو تركيبة مفتاح تسمح لي بالعودة إلى وضع الأوامر؟


193
2017-08-28 14:29


الأصل




الأجوبة:


كيف أقوم بالخروج من اتصال SSH؟

بطريقتين:

  • إغلاق جلسة shell ، على سبيل المثال مع exit تليها أدخلأو السيطرة-د عادة ما يسمح لك للخروج ssh جلسة عادية ،
  • في حالة وجود اتصال غير صالح و shell غير مستجيب ، اضغط على أدخل المفتاح ، ثم اكتب ~. ويجب إغلاق 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.

78
2017-09-16 21:57



لا أجد قسم "كيف نعرف هذا" مفيدًا بشكل خاص ، لأنه بالنسبة لي يعني أنه يوجد نوع من الحلول الواضحة ، عندما لا أجد ذلك بديهيًا بشكل خاص أنني سأفعل "man ssh" "للعثور على كيفية فصل. كيف وجدت "الخروج" ، على سبيل المثال؟ أوافق على أنه من الجيد إعادة التأكيد على فحص صفحات الرجل متى استطعت. - Alexander Pritchard
AlexanderPritchard لقد قمت بتحديث إجابتي لشرح ما نقوم به هنا بعناية أكبر. إذا وجدت أن صفحة الرجل صعبة الفهم ، قم بإيداع مشكلة مع المشرف ، أو حتى أفضل ، قم بتقديم طلب سحب مع تحسين (غير صالح بشكل جيد). - Aaron Hall
يبدو ذلك جيدًا من الناحية النظرية ، ولكن في الواقع ، يصارع العديد من الأشخاص لمعرفة كيفية التنقل في هذه الأوامر لأن حتى معرفة كيفية البحث عن المعلومات التي تريدها لا تفترض السياق الذي لا يملكه الأشخاص. ويذهب تقديم قضية مع مشرفين وتقديم طلبات السحب مع تحسينات أبعد من ذلك. أنا لا أزعم أن صفحات الرجل مفيدة ، ولكن إذا كانت مفيدة بشكل قاطع كما يظهر البعض منها ، فلن أستخدم Stack Exchange. أريد أن أكون واضحا أعتقد أن إجابتك على ما يرام ، وأن الناس يجب أن يدققوا في صفحات الرجل ، لكنهم ليسوا مفيدا بشكل شامل. - Alexander Pritchard
"إذا كانت مفيدة تمامًا كما يبدواها البعض ، فلن أستخدم Stack Exchange". أوافق ، ولهذا أحاول كتابة إجابات جيدة. الاستشهاد بالنقوش والمصادر المرجعية لا يعني جعل أي شخص يشعر بالغباء أو السوء بسبب عدم قراءته بالفعل من هذا المصدر ، فقد تم القيام به لتقديم المزيد من الأدلة على ما قد يكون تأكيدًا واضحًا للحقيقة ، بالإضافة إلى إبلاغ المستخدم بالمزيد المعلومات ذات الصلة قد يتم تخزينها. كنت تريد أن تعرف أنك تفعل الشيء الصحيح لغويا ، فضلا عن معرفة أنه يعمل. - Aaron Hall
لاحظ أنه إذا ~ هو مفتاح ميت في تخطيط لوحة المفاتيح لديك للكتابة ~ . - kasperd


إجابة قصيرة: النوع exit

إذا لم ينجح ذلك ، ومع ذلك ...

SSH Escape Escape و Disconnect Sequence

تقوم معظم تطبيقات SSH بتنفيذ حرف هروب للجلسات التفاعلية ، على غرار Telnet Ctrl-] مزيج. حرف الهروب SSH الافتراضي هو ~، دخلت في بداية السطر.

إذا كنت ترغب في إنهاء جلسة OpenSSH تفاعلية وهو عالق ولا يمكن خروجه عن طريق الدخول exit أو السيطرةد في قذيفة على الجانب البعيد، يمكنك الدخول ~ تليها نقطة .. للتأكد من إدخال حرف الهروب في بداية سطر الإدخال ، يجب الضغط على Enter أولاً. لذا فإن التسلسل التالي سينهي في معظم الحالات جلسة SSH:

أدخل~.

تسلسل الهروب أخرى

OpenSSH ، على سبيل المثال ، يقدم تسلسلات الهروب الأخرى إلى جانب ذلك ~.. دخول ~? خلال جلسة يجب أن تعطيك قائمة. بعض الأمثلة:

  • ~ يتبع Ctrl-Z يعلق الجلسة ،
  • ~& يضعها مباشرة في الخلفية ،
  • ~# يقدم قائمة بالاتصالات المعاد توجيهها في هذه الجلسة.
  • إذا كنت تريد ببساطة إدخال تيلدا في بداية السطر ، يجب عليك مضاعفة: ~~.

يمكن تغيير حرف الهروب باستخدام خيار سطر الأوامر -e. إذا قمت بتعيين قيمة خاصة -e none، يتم تعطيل الهروب وتكون جلسة العمل شفافة بالكامل.

أنظر أيضا صفحة مدير OpenBSD على ssh (المشار إليها من www.openssh.org) تحت -e خيار سطر الاوامر


258
2017-07-17 09:26



لماذا تجعل الأمر سهلاً عندما يمكنك أن تكون معقدة بدون فائدة؟ - MariusMatutiae
MariusMatutiae طلب OP شرطًا لا توجد به قذيفة بعيدة للدخول exit أو Ctrl-D، ولكن مجرد عملية استماع. لقد ذكرت بوضوح أن حلّي يناسب جلسة وهو عالق ولا يمكن الخروج منه. حاولت توضيح ذلك أكثر ، آمل أن يكون من الأسهل رؤيته الآن. - Dubu
كنت متشككا ، ولكن ~. دون مسافات بالضبط ما احتاجه ، شكرا! :) - Jamey
في تخطيط لوحة المفاتيح الألمانية السويسرية ، يتم إنشاء التلدة بالضغط على AltGr + ^ (بالإضافة إلى أنه مفتاح حظر). وبسبب هذا ، يبدو أن تسلسل الهروب لا يعمل. لا أحد يعرف كيفية كتابة الفرار الافتراضي في ألمانيا السويسرية؟ - Daniel Alder
Dobu العثور على سبب عدم عملها من قبل. إذا قمت بالفعل بكتابة ~ في نفس السطر (الذي يحدث بسهولة إذا كنت تختبر) ، فإن التالي ~. يتم تجاهل تسلسل. اضطر للضغط على العودة أولا ... - Daniel Alder


هل تريد الخروج من قذيفة SSH؟

يمكنك كتابة exit وضرب أدخل، او استعمل السيطرة+د 


33
2017-08-28 18:37



ساعدني "exit" في استخدام ctrl + d في عارض VNC ... شكرًا - raj gupta
هذا لا يعمل في الحالات التي يتم فيها تجميد الجهاز أو اختفائه أو عدم استجابة التطبيق لأي إدخال - Daniel Alder


فقط اكتب exit أو logout (ثم ​​اضغط على Enter بالطبع) كلاهما سيعملان.


11
2018-04-14 15:00





يمكنك كتابة logout في خط وحدة التحكم (وضرب أدخل بالطبع بكل تأكيد).


4
2017-07-17 07:12





هذه هي الأحرف المدعومة التي توفر خيارات متنوعة يمكنك اللعب بها باستخدام 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

(لاحظ أنه يتم التعرف على عمليات الهروب فقط فورًا بعد سطر جديد.) يمكنك إغلاق قائمة تسلسلات الهروب عن طريق ضرب أدخل.


4
2018-06-14 22:26





أرى أن الإجابة على السؤال كافية ، لكني أود أن أضيف أنني أرى أنك تتصل بهذا الخادم عبر ssh على المنفذ 5566. قرأت مرة واحدة على هذا الموقع أن الاتصال عبر SSH على منافذ غير مفضلة (يجري كل شيء فوق 1023) غير آمن.

عندما يتم تسجيل دخولك إلى نظام كمستخدم غير أساسي (أي شخص لا يتم تذييل 0) ، لا يمكنك إنشاء قائمة TCP أو UDP دون 1024. هذا لأن أرقام المنافذ تحت 1024 تسمى منافذ مميزة ويمكن أن تكون فقط فتح بواسطة الجذر أو العمليات التي تعمل كجذر. على سبيل المثال ، عندما يبدأ خادم الويب الخاص بك (apache ، nginx ، الخ) ، فإنه سيفعل ذلك كمستخدم الجذر المميز من أجل فتح اتصال استماع بالمنفذ 80 (المنفذ الذي سيتم استخدامه بشكل افتراضي لحركة HTTP). الآن ، بمجرد فتح المنفذ وكل ما يجب القيام به كجذر ، فسوف يعود خادم الويب إلى مستخدم غير مميز (إما www-data أو apache أو مستخدم واحد). من هذه النقطة ، عندما يحدث شيء سيئ ، يقتصر فقط على الحقوق التي يمتلكها هذا المستخدم. الآن ، عد إلى SSH: عندما نبدأ SSH على المنفذ 22 ، فإننا نعرف حقيقة أن ذلك يتم عن طريق الجذر أو عملية الجذر لأنه لا يمكن لأي مستخدم آخر فتح هذا المنفذ. ولكن ماذا يحدث عندما ننتقل إلى SSH في المنفذ 2222؟ يمكن فتح هذا المنفذ بدون حساب مميز ، مما يعني أنه يمكنني كتابة برنامج نصي بسيط يستمع إلى المنفذ 2222 ويحاكي SSH من أجل التقاط كلمات المرور الخاصة بك. 

لذلك عندما أقوم بتغيير المنفذ بنفسي ، أستخدم دائمًا منفذًا أقل من 1024 لم يتم استخدامه بالفعل من قبل البرامج القياسية الأخرى. هناك قائمة جيدة على ويكيبيديا لهذا.

ويعتقد كاتب المقال أيضًا أن تغيير منفذ SSH يجب ألا يتم على الإطلاق لأسباب تتعلق بالتوافق.

مشكلة أخرى: العديد من الشركات لديها جدران الحماية الواردة والصادرة ، مما يعني أنه لا يمكنك الذهاب إلى أي موقع إلى أي منفذ عشوائي ونتوقع أن تعمل. غالباً ما يتم إعفاء بعض المنافذ الآمنة مثل المنفذ 22 من ذلك ، بينما يتم حظر المنافذ الأخرى مثل المنفذ 25 أو 110.

أنا شخصيا أعتقد أن هناك حالات استخدام حيث تأتي في متناول اليدين. على سبيل المثال ، عندما تكون أنت أو مجموعة صغيرة من الأشخاص هم الوحيدون الذين يتصلون بالملقم عبر SSH ، فإنك تقوم بتسجيل هجمات القوة الغاشمة الآلية وتريد الحفاظ على السجل نظيفًا.


4
2017-07-19 06:59



بالتأكيد ... إنه نص كثير على الرغم من أنني لم أرغب في إرسال رسائل غير مرغوب فيها. :) لكنك حجة جيدة. - Ogier Schelvis
من تجربتي ما تكتبه هنا صحيح جزئيا ، ولكن نعم ، يجب على الجميع أن يأخذ هذه الحقائق في الاعتبار حول المنافذ المحجوزة ، على أي حال لم تكن المشكلة هنا. شكرا لإجابتك ، على الرغم من! - Andreea
إذا كان هناك جزء غير صحيح ، فأنا متفائل لما هو عليه. - Ogier Schelvis
سأعطيك أولاً أولًا: يجب ألا تستخدم منفذًا أقل من 1024 ؛ تبدأ قائمة المنافذ المستخدمة عند صفر. تمت التوصية بإعادة استخدام المنافذ فوق 63737. لكن يجب أن تفكر في حقيقة أنك إذا لم تكن قد قمت بتثبيتها على الخادم الخاص بك ، على سبيل المثال ، Polipo الذي يستخدم منفذ 8123 ، فمن المقبول استخدامه حتى يتم تثبيت polipo (و ثم لا أحد يتذكر لتغيير المنفذ: P) - Andreea
وإليك ما قد يكون خاطئًا: إن القلق الموصوف هو شخص يقوم بهجوم محلي. نأمل يثق المدراء تسجيل الدخول إلى أجهزة البنية التحتية الرئيسية. هناك العديد من المنافذ أكثر من 1024 من أدناه. لذا ، فإن إخفاء خدمة على منفذ أعلى قد يساعد في منع / التأخير في رؤية الماسحات الضوئية البعيدة التي تركز على المنافذ الأكثر استخدامًا. إذا كان شخص ما يقوم بفحص المنافذ العليا الخاصة بك ، فيمكن لـ IDS تعيين تنبيه (وربما نشر تقنيات IPS). الحد إلى <1024 يقيد المدافعين عنك (المسؤولون المحليون الموثوقون) ويضيق الأمور بالنسبة إلى متجه الهجوم الأكثر احتمالاً والأقل موثوقية: بعيد - TOOGAM


ماك: عند توقف ssh استخدام التسلسل التالي:

ENTER 
SHIFT+`
.

أين: تحول + `  ينتج عنه ~ (حرف تيلدا)


2
2018-03-29 17:25