كيفية استخدام مفاتيح SSH مع نظام التشغيل Windows على Azure

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة

هذه المقالة مخصصة لمستخدمي نظام التشغيل Windows الذين يرغبون في إنشاء واستخدام مفاتيح secure shell (SSH) للاتصال بالأجهزة الظاهرية (VMs) التي تعمل بنظام Linux في Azure. يمكنك أيضاً إنشاء مفاتيح SSH وتخزينها في مدخل Microsoft Azure لاستخدامها عند إنشاء أجهزة ظاهرية في المدخل.

لاستخدام مفاتيح SSH من كمبيوتر عميل Linux أو macOS، راجع الخطوات السريعة. للحصول على نظرة عامة أكثر تفصيلاً حول SSH، راجع الخطوات التفصيلية: إنشاء مفاتيح SSH وإدارتها للمصادقة على أحد الأجهزة الظاهرية التي تعمل بالنظام المضيف Linux في Azure.

نظرة عامة على SSH والمفاتيح

SSH هو بروتوكول اتصال مُشفّر يسمح بعمليات تسجيل الدخول الآمنة عبر الاتصالات غير الآمنة. SSH هو بروتوكول الاتصال الافتراضي ل Linux VMs المستضاف في Azure. على الرغم من أن SSH نفسه يوفر اتصالاً مشفراً، فإن استخدام كلمات المرور مع SSH لا يزال يترك الجهاز الظاهري عرضة لهجمات القوة الغاشمة. نوصي بالاتصال بجهاز ظاهري عبر SSH باستخدام زوج مفاتيح عام-خاص، يُعرف أيضاً باسم مفاتيح SSH.

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

  • يتم وضع المفتاح العام على الجهاز الظاهري الذي يعمل بنظام Linux عندما تنشئ الجهاز الظاهري.

  • يظل المفتاح الخاص على نظامك المحلي. عليك حماية هذا المفتاح الخاص. لا تشاركه.

عندما تتصل بجهازك الظاهري الذي يعمل بنظام Linux، يختبر الجهاز الظاهري كمبيوتر عميل SSH للتأكد من امتلاكه المفتاح الخاص الصحيح. إذا كان العميل لديه المفتاح الخاص، فإنه يتم منح حق الوصول إلى الجهاز الظاهري.

استناداً إلى سياسات الأمان الخاصة بالمؤسسة التي تعمل بها، يمكنك أن تعيد استخدام مفتاح مزدوج واحد للوصول إلى العديد من الأجهزة الظاهرية لدى Azure ومنتجاتها. لا تحتاج إلى زوج منفصل من المفاتيح لكل جهاز ظاهري.

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

تنسيقات مفاتيح SSH المدعومة

يدعم Azure حاليا أنواع المفاتيح التالية:

  • بروتوكول SSH 2 (SSH-2) RSA (Rivest، Shamir، Adleman) بحد أدنى 2048 بت
  • مفاتيح ED25519 بطول ثابت يبلغ 256 بت

لا يتم حاليا دعم التنسيقات الرئيسية الأخرى مثل Diffie-curve Diffie-Hellman (ECDH) وخوارزمية التوقيع الرقمي للمنحنى الناقص (ECDSA).

عملاء SSH

تتضمن الإصدارات الحديثة من نظام التشغيل Windows 10 أوامر عميل OpenSSH لإنشاء مفاتيح SSH واستخدامها وإجراء اتصالات SSH من PowerShell أو موجه الأوامر.

يمكنك أيضاً استخدام Bash في Azure Cloud Shell للاتصال بالجهاز الظاهري. يمكنك استخدام Cloud Shell في مستعرض الويب، في مدخل Microsoft Azure، أو باعتبارها terminal في Visual Studio Code باستخدام ملحق Azure Account.

يمكنك أيضاً تثبيت نظام Windows الفرعي لـ Linux‬ للاتصال بالجهاز الظاهري عبر SSH واستخدام أدوات Linux الأصلية الأخرى داخل Bash shell.

أنشئ مفتاح مزدوج SSH

تتمثل أسهل طريقة لإنشاء مفاتيح SSH وإدارتها في استخدام المدخل لإنشائها وتخزينها لإعادة استخدامها.

يمكنك أيضاً إنشاء المفاتيح المزدوجة من خلال Azure CLI باستخدام الأمر az sshkey create، كما هو موضح في إنشاء مفاتيح SSH وتخزينها.

لإنشاء زوج مفاتيح SSH على الكمبيوتر المحلي باستخدام ssh-keygen الأمر من PowerShell أو موجه الأوامر، استخدم الأمر التالي:

ssh-keygen -m PEM -t rsa -b 2048

أدخل اسم الملف، أو استخدم الإعداد الافتراضي الموضح بين قوسين (على سبيل المثال C:\Users\username/.ssh/id_rsa). أدخل عبارة مرور للملف، أو اترك عبارة المرور فارغة إذا كنت لا تريد استخدام عبارة مرور.

أنشئ جهاز ظاهري باستخدام مفتاحك

لإنشاء جهاز ظاهري يعمل بنظام Linux ويستخدم مفاتيح SSH للمصادقة، أدخل المفتاح العام SSH عند إنشاء الجهاز الظاهري.

باستخدام Azure CLI، حدد مسار المفتاح العام واسم ملفه مستخدماً az vm create والمعلمة --ssh-key-value.

az vm create \
   --resource-group myResourceGroup \
   --name myVM \
   --image Ubuntu2204\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

باستخدام PowerShell، استخدم New-AzVM وأضف مفتاح SSH إلى تكوين الجهاز الظاهري باستخدام'. على سبيل المثال، راجع التشغيل السريع: إنشاء جهاز ظاهري بنظام التشغيل Linux في Azure باستخدام PowerShell.

إذا قمت بالعديد من عمليات النشر باستخدام المدخل، فقد تحتاج إلى تحميل المفتاح العام إلى Azure، حيث يمكن تحديده بسهولة عند إنشاء جهاز ظاهري من المدخل. لمزيد من المعلومات، راجع تحميل مفتاح SSH.

الاتصال بالجهاز الظاهري الخاص بك

بالإضافة إلى توزيع المفتاح العام على جهازك الظاهري من Azure، والمفتاح الخاص على نظامك المحلي، أضف SSH إلى جهازك الظاهري باستخدام عنوان IP أو اسم DNS الخاص بجهازك الظاهري. استبدل اسم مستخدم المسؤول وعنوان IP (أو اسم المجال المؤهل بالكامل) والمسار في مفتاحك الخاص بـ azureuser و 10.111.12.123 في الأمر التالي:

ssh -i ~/.ssh/id_rsa azureuser@10.111.12.123

إذا لم يسبق لك الاتصال بهذا الجهاز الظاهري من قبل، فستتم مطالبتك بالتحقق من بصمة المضيفين. من المغري قبول بصمة الإصبع المقدمة، ومع ذلك، فإن هذا يعرضك لشخص محتمل في الهجوم الأوسط. يجب عليك دائماً التحقق من صحة بصمة المضيفين. ليس عليك سوى القيام بذلك سوى في المرة الأولى التي تتصل فيها من خلال كمبيوتر عميل. للحصول على بصمة المضيف عبر المدخل، استخدم الأمر Run مع الأمر التالي: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

لقطة شاشة تظهر استخدام أمر التشغيل للتحقق من صحة بصمة المضيف.

لتشغيل الأمر باستخدام CLI، استخدم الأمر az vm run-command invoke .

إذا قمت بتكوين عبارة مرور عند إنشاء مفتاحك المزدوج، فأدخل عبارة المرور عند مطالبتك بذلك.

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

الخطوات التالية