التشغيل السريع: إنشاء زوج مفاتيح 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وUbuntuLTS بالقيم الخاصة بك:

az vm create --name VMname --resource-group RGname --image Ubuntu2204 --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 Ubuntu2204 \
  --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.

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

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