كيفية استخدام مفاتيح 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 بطول لا يقل عن 2048 بت. التنسيقات الرئيسية الأخرى مثل ED25519 و 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 4096
أدخل اسم الملف، أو استخدم الإعداد الافتراضي الموضح بين قوسين (على سبيل المثال 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 UbuntuLTS\
--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
إذا لم تتصل أبداً بهذا الجهاز الظاهري قبل أن يُطلب منك التحقق من بصمة المضيفين. من المغري ببساطة قبول بصمة الإصبع المقدمة، ومع ذلك، فإن هذا يعرضك لشخص محتمل في الهجوم الأوسط. يجب عليك دائماً التحقق من صحة بصمة المضيفين. ليس عليك سوى القيام بذلك سوى في المرة الأولى التي تتصل فيها من خلال كمبيوتر عميل. للحصول على بصمة المضيف عبر المدخل، استخدم أمر التشغيل مع ما يلي: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.
لتشغيل الأمر باستخدام CLI، استخدم الأمر az vm run-command invoke.
إذا قمت بتكوين عبارة مرور عند إنشاء مفتاحك المزدوج، فأدخل عبارة المرور عند مطالبتك بذلك.
إذا كان الجهاز الظاهري يستخدم سياسة الوصول في نفس الوقت، ستحتاج إلى طلب الوصول قبل أن تتمكن من الاتصال بالجهاز الظاهري. لمزيد من المعلومات حول سياسة في نفس الوقت «just-in-time»، راجع إدارة الوصول إلى الجهاز الظاهري باستخدام سياسة في نفس الوقت .
الخطوات التالية
للحصول على معلومات حول مفاتيح SSH في مدخل Microsoft Azure لاستخدامها عند إنشاء الأجهزة الظاهرية، راجع إنشاء مفاتيح SSH وتخزينها في مدخل Microsoft Azure.
للحصول على معلومات حول مفاتيح SSH في واجهة Azure CLI لاستخدامها عند إنشاء الأجهزة الظاهرية، راجع إنشاء مفاتيح SSH وتخزينها في Azure CLI.
للحصول على الخطوات التفصيلية والخيارات والأمثلة المتقدمة للعمل مع مفاتيح SSH، راجع الخطوات التفصيلية لإنشاء المفاتيح المزدوجة SSH.
يمكنك أيضاً استخدام PowerShell في Azure Cloud Shell لإنشاء مفاتيح SSH وإجراء اتصالات SSH إلى الأجهزة الظاهرية التي تعمل بنظام Linux. راجع التشغيل السريع PowerShell.
إذا كنت تواجه صعوبة في استخدام SSH للاتصال بأجهزتك الظاهرية التي تعمل بنظام التشغيل Linux، راجع استكشاف أخطاء اتصالات SSH بأحد الأجهزة الظاهرية التي تعمل بنظام Linux من Azure وإصلاحها.