حيل مثيرة للاهتمام وحيل SSH

بعض النصائح حول استخدام SSH بكفاءة. لنتحدث عن كيفية:

  • استخدم المصادقة ذات العاملين لاتصالات SSH
  • من الآمن استخدام "إعادة توجيه المفاتيح" (إعادة توجيه الوكيل) ؛
  • الخروج من جلسة SSH المعلقة ؛
  • ترك المحطة مفتوحة عند الخروج أو قطع الاتصال ؛
  • شارك المحطة الطرفية البعيدة مع صديق (بدون Zoom!).

صورة

مصادقة SSH متعددة العوامل


هناك خمس طرق لإضافة عامل ثانٍ للمصادقة في SSH:

  1. OpenSSH ( ).

    2020 OpenSSH FIDO U2F (Universal Second Factor). , .

    , 8.2 . ssh -V, nc [servername] 22.

    ecdsa-sk ed25519-sk ( ). $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk. , U2F . U2F , .

    . OpenSSH -sk-«» . U2F . , . $ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_sk. , $ ssh-add -K. .
  2. PIV+PKCS11 Yubikey. , SSH-, . Yubikey U2F+SSH with PIV/PKCS11. , FIDO U2F. , .
  3. ssh- yubikey-agent. Filippo Valsorda SSH- Yubikeys. .
  4. Touch ID sekey. Sekey — SSH- , secure enclave MacOS Touch ID.
  5. Single Sign On SSH. . Single Sign On SSH , , .


(agent forwarding)


إعادة توجيه مفتاح في SSH يمنح المضيف البعيد وصولاً إلى وكيل SSH المحلي. عندما يستخدم عميل SSH إعادة توجيه المفاتيح (يتم تنشيطه عادةً بواسطة الخيار ssh -A) ، هناك قناتان في الاتصال - جلسة تفاعلية وقناة إعادة توجيه المفتاح. يقوم وكيل SSH المحلي بإنشاء مأخذ توصيل IPC يتصل بالمضيف البعيد من خلال هذه القناة. هذا أمر خطير لأنه مستخدم لديه امتيازات الجذر على مضيف بعيد لديه حق الوصول إلى وكيل SSH المحلي الخاص بك ويمكن أن يستخدمه للوصول إلى موارد الشبكة نيابة عنك. مع وكيل SSH القياسي الذي يأتي مع OpenSSH ، لن تعرف أبدًا ما حدث. ولكن إذا كنت تستخدم مفتاح U2F (أو Sekey ) ، فيمكنك إيقاف أي محاولات لاستخدام وكيل SSH الخاص بك.

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

الخروج من جلسة SSH المعلقة


غالبًا ما تتجمد جلسات SSH بسبب انقطاع الشبكة ، أو فقدان التحكم من خلال برنامج التشغيل أو أحد تتابعات التحكم الطرفية التي تمنع إدخال لوحة المفاتيح.

إليك بعض الطرق للخروج من جلسة معلقة:

  1. خروج تلقائي عند انقطاع الشبكة. في تكوين SSH الخاص بك ، .ssh/configتحتاج إلى إضافة: سيتحقق من الاتصال عن طريق إرسال طلبات الصدى إلى المضيف البعيد كل ثانية. إذا لم يتم الرد على أكثر من هذه الطلبات ، فسيغلق SSH الاتصال.

    ServerAliveInterval 5
    ServerAliveCountMax 1


    sshServerAliveIntervalServerAliveCountMax
  2. . ssh ~ . ~. ( ).

    ~? , . , ~ , .

?عندما تم اختراع الإنترنت ، لم تكن أجهزة الكمبيوتر المحمولة بشكل خاص. عند العمل على كمبيوتر محمول والتبديل بين شبكات WiFi IPv4 ، يتغير عنوان IP الخاص بك. نظرًا لأن SSH يعتمد على اتصال TCP ، وتعتمد اتصالات TCP على نقاط الاتصال ذات عناوين IP الثابتة ، في كل مرة تتصل فيها بشبكة أخرى ، يتم فقد اتصال SSH الخاص بك. عندما يتغير عنوان IP الخاص بك ، يستغرق الأمر بعض الوقت قبل أن يكتشف مكدس الشبكة فقدان الاتصال. لا يعني اتصال TCP إيقافًا سريعًا لأحد الأطراف في حالة حدوث مشاكل في الشبكة ، لذا سيحاول إعادة محاولة إرسال البيانات لبعض الوقت. في محطتك ، ستبدو الجلسة عالقة. يضيف IPv6 وظائف تسمح للأجهزة بالحفاظ على عنوان IP الخاص بها عند التبديل بين الشبكات.لذا في يوم من الأيام ، سيتوقف هذا عن كونه مشكلة.

كيفية ترك محطة طرفية مفتوحة على مضيف بعيد


هناك خياران لحفظ جلسة عند التبديل بين الشبكات أو عندما تريد قطع الاتصال لبعض الوقت:

  1. استخدم Mosh أو المحطة الأبدية . إذا كنت حقًا بحاجة إلى اتصال لا يتعطل ، حتى إذا قمت بالتبديل بين الشبكات ، فاستخدم shell Mosh - mobile. Mosh هو غلاف آمن يستخدم SSH لتهيئة جلسة (مصافحة) ، وبعد ذلك يتحول إلى قناته المشفرة الخاصة به. هذه القناة مستقرة للغاية. يمكنه التعامل مع المواقف المختلفة ، بما في ذلك قطع الاتصال من الإنترنت ، وتغيير عنوان IP لجهاز الكمبيوتر المحمول ، والتأخير الكبير عند الإرسال عبر الشبكة ، وغيرها. بفضل سحر UDP وبروتوكول المزامنة المستخدم من قبل Mosh.

    Mosh , 60000–61000 UDP . mosh user@server .

    Mosh , SSH, - . , . SSH , , Mosh .
  2. tmux. , , tmux. SSH- , tmux attach, tmux. — , macOS .

    tmux Byobu — , . Byobu Ubuntu macOS Homebrew.



عندما تحل مشكلة معقدة مع الخوادم ، أود أن أشارك جلسة SSH مع شخص آخر موجود في مكان آخر. tmux هو أفضل أداة مشاركة طرفية.
لذا ، عليك القيام بما يلي:

  1. تأكد من tmuxتثبيته على خادمك في DMZ (أو في المكان الذي تريد الاتصال به).
  2. يحتاج كل منكما إلى الاتصال بالخادم عبر SSH باستخدام نفس الحساب .
  3. يجب أن يعمل أحدكم tmuxلإنشاء tmuxجلسة.
  4. يجب على شخص آخر تنفيذ الأمر tmux attach.
  5. هاهو! لقد شاركت المحطة.

إذا كنت بحاجة إلى مزيد من الضبط الدقيق لجلسات المستخدمين المتعددين ، فاستخدم tmate ، هذه الشوكة tmux، التي تتيح لك جعل الجلسات المشتركة أسهل.

ترجمه أندريه زينشينكو ، رئيس قسم تحليلات ريكسوفت

All Articles