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

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

باستخدام المفتاح المزدوج shell (SSH) الآمن، يمكنك إنشاء أجهزة ظاهرية تعمل بنظام التشغيل Linux يستخدم مفاتيح SSH للمصادقة. توضح لك هذه المقالة كيفية إنشاء ملفات المفتاح المزدوج SSH بين القطاعين العام والخاص واستخدامه بسرعة للأجهزة الظاهرية التي تعمل بنظام Linux. يمكنك إكمال هذه الخطوات باستخدام Azure Cloud Shell أو macOS أو مضيف Linux.

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

ملاحظة

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

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

للحصول على طرق إضافية لإنشاء مفاتيح SSH واستخدامها على كمبيوتر Windows، راجع كيفية استخدام مفاتيح SSH مع Windows على Azure.

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

يدعم Azure حالياً بروتوكول SSH للمفاتيح المزدوجة العامة-الخاصة 2 (SSH-2) RSA بطول لا يقل عن 2048 بت. التنسيقات الرئيسية الأخرى مثل ED25519 وECDSA غير مدعومة.

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

استخدم الأمر ssh-keygen لإنشاء ملفات مفاتيح SSH العامة والخاصة. سيتم إنشاء هذه الملفات افتراضياً في ~/.ssh directory. يمكنك تحديد موقع مختلف، وكلمة مرور اختيارية (عبارة مرور) للوصول إلى ملف المفتاح الخاص. في حالة وجود مفتاح مزدوج SSH بالاسم نفسه في الموقع المحدد، تتم الكتابة فوق هذه الملفات.

ينشئ الأمر التالي بإنشاء زوج مفاتيح SSH باستخدام تشفير RSA وطول بت يبلغ 4096:

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

ملاحظة

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

إذا كنت تستخدم Azure CLI لإنشاء جهازك الظاهري باستخدام الأمر az vm create فيمكنك اختيارياً إنشاء ملفات مفاتيح SSH العامة والخاصة باستخدام الخيار --generate-ssh-keys. يتم تخزين الملفات الرئيسية في الدليل ~/.ssh ما لم ينص على خلاف ذلك مع الخيار --ssh-dest-key-path. إذا كان المفتاح المزدوج ssh موجوداً بالفعل وتم استخدام الخيار --generate-ssh-keys، فلن يتم إنشاء مفتاح مزدوج جديد ولكن بدلاً من ذلك سيتم استخدام المفتاح المزدوج الحالي. في الأمر التالي، استبدل VMname و RGname بقيمك الخاصة:

az vm create --name VMname --resource-group RGname --image UbuntuLTS --generate-ssh-keys 

بادر بتوفير مفتاح SSH العام عند توزيع جهاز ظاهري

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

إذا لم تكن معتاداً على تنسيق مفتاح SSH العام، فيمكنك عرض المفتاح العام باستخدام الأمر cat التالي، واستبداله ~/.ssh/id_rsa.pub بمسار واسم الملف لملف المفتاح العام لديك إذا لزم الأمر:

cat ~/.ssh/id_rsa.pub

تبدو قيمة المفتاح العمومي النموذجية مثل هذا المثال:

ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname

إذا نسخت محتويات ملف المفتاح العام ولصقتها لاستخدامها في مدخل Azure أو قالب إدارة الموارد، فتأكد من عدم نسخ أي مسافة بيضاء لاحقة. لنسخ مفتاح عام في macOS، يمكنك توصيل ملف المفتاح العام إلى pbcopy. وبالمثل في Linux، يمكنك توصيل ملف المفتاح العام إلى برامج مثل xclip.

يتم تخزين المفتاح العام الذي تضعه على الجهاز الظاهري الذي يعمل بنظام التشغيل Linux في Azure بشكل افتراضي في ~/.ssh/id_rsa.pub، ما لم تحدد موقعاً مختلفاً عند إنشاء المفتاح المزدوج. لاستخدام Azure CLI 2.0 لإنشاء جهازك الظاهري باستخدام مفتاح عام موجود، فحدد قيمة أو موقع هذا المفتاح العام اختيارياً عن طريق إنشاء الأمر az vm create باستخدام الخيار --ssh-key-values. في الأمر التالي، استبدل myVM و myResourceGroup و UbuntuLTS و azureuser و mysshkey.pub بقيمك الخاصة:

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image UbuntuLTS \
  --admin-username azureuser \
  --ssh-key-values mysshkey.pub

إذا كنت ترغب في استخدام مفاتيح SSH متعددة مع جهازك الظاهري، فيمكنك إدخالها في قائمة مفصولة بمسافة، مثل هذه --ssh-key-values sshkey-desktop.pub sshkey-laptop.pub.

SSH في VM الخاص بك

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

ssh azureuser@myvm.westus.cloudapp.azure.com

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

Screenshot showing using the Run Command to validate the host fingerprint.

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

إذا حددت عبارة مرور عند إنشاء مفتاح مزدوج، فأدخِل عبارة المرور عندما يُطلب منك ذلك أثناء عملية تسجيل الدخول. تتم إضافة الجهاز الظاهري إلى ملف ~/.ssh/known_hosts، ولن تتم مطالبتك بالاتصال مرةً أخرى حتى يتغير المفتاح العام على جهاز Azure الظاهري أو تتم إزالة اسم الخادم من ~/.ssh/known_hosts.

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

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