الحيل الصغيرة SSH

جمعت هذه المقالة أفضل ممارساتنا لاستخدام SSH بشكل أكثر كفاءة. ستتعلم منه كيف:

  • أضف العامل الثاني لتسجيل الدخول إلى SSH
  • آمنة لاستخدام إعادة توجيه الوكيل
  • تسجيل الخروج من جلسة SSH
  • حافظ على فتح المحطة الطرفية الدائمة
  • مشاركة جلسة محطة طرفية بعيدة مع صديق (بدون Zoom!)

إضافة عامل ثانٍ إلى SSH الخاص بك


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

  1. قم بتحديث OpenSSH الخاص بك واستخدم مفتاح التشفير. في فبراير 2020 ، تمت إضافة دعم مفاتيح التشفير FIDO U2F (العامل الثاني العالمي) إلى OpenSSH. هذه ميزة جديدة رائعة ، ولكن هناك فارق بسيط: لن يتمكن سوى العملاء والخوادم التي تمت ترقيتها إلى OpenSSH الإصدار 8.2 والإصدارات الأحدث من استخدام مفاتيح التشفير ، حيث يقدم تحديث فبراير أنواعًا جديدة من المفاتيح لهم. يمكنك ssh –Vالتحقق من إصدار عميل SSH باستخدام الأمر ، وإصدار الخادم باستخدام الأمر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. SSHD . Yubico U2F+SSH PIV/PKCS11. FIDO U2F, , , .
  3. yubikey-agent ssh-. SSH Yubikeys. .
  4. Touch ID sekey. Sekey SSH , Mac’ Touch ID .
  5. Single Sign On SSH. . single sign on SSH — (MFA).

agent forwarding


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

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

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


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

هناك عدة طرق لإنهاء جلسة معلقة:

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

    ServerAliveInterval 5
    ServerAliveCountMax 1

    سيرسل ssh صدى إلى المضيف البعيد كل ServerAliveInterval ثانية للتحقق من الاتصال. إذا لم يتلق المزيد من أصداء ServerAliveCountMax استجابة ، فسيقوم ssh بإنهاء الاتصال في المهلة والخروج من الجلسة.
  2. . ssh ~ () . ~. . ( .) ~? . , ~ , ~ .

? . IPv4 WiFi, IP- . SSH TCP , , , IP-, , SSH . IP-, . , TCP- . . , . IPv6 , . , .


هناك طريقتان مختلفتان لكيفية الحفاظ على الاتصال عند التبديل بين الشبكات المختلفة أو إذا كنت ترغب في قطع الاتصال لفترة قصيرة.

1. استخدم Mosh أو Eternal Terminal

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

لاستخدام Mosh ، ستحتاج إلى تثبيته على كل من العميل والخادم ، وفتح المنافذ 60000-61000 لحركة UPD غير المتصلة إلى المضيف البعيد. في المستقبل ، سيكون كافياً لاستخدامه للاتصال mosh user@server.

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

2. استخدم tmux

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

يحب بعض الأشخاص تجميل tmux باستخدام Byobu ، وهي حزمة تحسن بشكل كبير من سهولة استخدام tmux وتضيف الكثير من اختصارات لوحة المفاتيح إليها. يأتي Byobu مع Ubuntu وهو سهل التثبيت على جهاز Mac عبر Homebrew.

مشاركة جلسة محطة طرفية بعيدة مع صديق


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

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

إذا كنت ترغب في جلسات tmux متعددة المستخدمين أكثر تعقيدًا ، فجرّب tmate ، فهذه شوكة من tmux تُبسط إلى حد كبير الجلسات النهائية المشتركة.

All Articles