التشغيل السريع: إنشاء زوج مفاتيح 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 (Rivest، Shamir، Adleman) بحد أدنى 2048 بت
- مفاتيح ED25519 بطول ثابت يبلغ 256 بت
لا يتم حاليا دعم التنسيقات الرئيسية الأخرى مثل Diffie-curve Diffie-Hellman (ECDH) وخوارزمية التوقيع الرقمي للمنحنى الناقص (ECDSA).
أنشئ مفتاح مزدوج SSH
استخدم الأمر ssh-keygen
لإنشاء ملفات مفاتيح SSH العامة والخاصة. سيتم إنشاء هذه الملفات افتراضياً في ~/.ssh directory. يمكنك تحديد موقع مختلف، وكلمة مرور اختيارية (عبارة مرور) للوصول إلى ملف المفتاح الخاص. في حالة وجود مفتاح مزدوج SSH بالاسم نفسه في الموقع المحدد، تتم الكتابة فوق هذه الملفات.
ينشئ الأمر التالي بإنشاء زوج مفاتيح SSH باستخدام تشفير RSA وطول بت يبلغ 4096:
ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/id_rsa.pem
ينشئ الأمر التالي زوج مفاتيح SSH باستخدام تشفير ED25519 بطول ثابت يبلغ 256 بت:
ssh-keygen -m PEM -t ed25519 -f ~/.ssh/id_ed25519.pem
إشعار
يمكنك أيضاً إنشاء المفاتيح المزدوجة من خلال 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
إشعار
az sshkey create command deafults to RSA encryption ولا يمكن استخدامها لإنشاء أزواج مفاتيح ED25519، ولكن يمكنك إنشاء زوج مفاتيح ED25519 باستخدام ssh-keygen كما هو موضح أعلاه ثم استخدام هذا المفتاح العام لإنشاء جهاز ظاهري.
بادر بتوفير مفتاح SSH العام عند توزيع جهاز ظاهري
لإنشاء جهاز ظاهري يعمل بنظام التشغيل Linux يستخدم مفاتيح SSH للمصادقة، بادر بتحديد مفتاح SSH العام خاصتك عند إنشاء الجهاز الظاهري باستخدام مدخل Azure أو CLI أو قوالب إدارة الموارد أو أي أساليب أخرى:
- إنشاء جهاز ظاهري Linux باستخدام مدخل Microsoft Azure
- إنشاء جهاز ظاهري يعمل بنظام التشغيل Linux باستخدام Azure CLI
- إنشاء جهاز ظاهري يعمل بنظام التشغيل Linux باستخدام قالب Azure
إذا لم تكن معتاداً على تنسيق مفتاح SSH العام، فيمكنك عرض المفتاح العام باستخدام الأمر cat
التالي، واستبداله ~/.ssh/id_rsa.pub
بمسار واسم الملف لملف المفتاح العام لديك إذا لزم الأمر:
زوج مفاتيح RSA
cat ~/.ssh/id_rsa.pub
تبدو قيمة المفتاح العام RSA النموذجية مثل هذا المثال:
ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname
زوج مفاتيح ED25519
cat ~/.ssh/id_ed25519.pub
تبدو قيمة المفتاح العام ED25519 النموذجية مثل هذا المثال:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILRjWGWLeiUQ3U9fNnCsNpXIyACpD/Jbm09OZGsz3DIM username@domainname
إذا نسخت محتويات ملف المفتاح العام ولصقتها لاستخدامها في مدخل Azure أو قالب إدارة الموارد، فتأكد من عدم نسخ أي مسافة بيضاء لاحقة. لنسخ مفتاح عام في macOS، يمكنك توصيل ملف المفتاح العام إلى pbcopy
. وبالمثل في Linux، يمكنك توصيل ملف المفتاح العام إلى برامج مثل xclip
.
يتم تخزين المفتاح العام الذي تضعه على جهاز Linux الظاهري في Azure بشكل افتراضي ضمن ~/.ssh/
الدليل، ما لم تحدد موقعا مختلفا عند إنشاء زوج المفاتيح. لاستخدام 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}'
.
لتشغيل الأمر باستخدام CLI، استخدم az vm run-command invoke
.
إذا حددت عبارة مرور عند إنشاء مفتاح مزدوج، فأدخِل عبارة المرور عندما يُطلب منك ذلك أثناء عملية تسجيل الدخول. تتم إضافة الجهاز الظاهري إلى ملف ~/.ssh/known_hosts، ولن تتم مطالبتك بالاتصال مرةً أخرى حتى يتغير المفتاح العام على جهاز Azure الظاهري أو تتم إزالة اسم الخادم من ~/.ssh/known_hosts.
إذا كان الجهاز الظاهري يستخدم سياسة الوصول في نفس الوقت، ستحتاج إلى طلب الوصول قبل أن تتمكن من الاتصال بالجهاز الظاهري. لمزيد من المعلومات عن نهج الوصول في نفس الوقت، راجع إدارة الوصول إلى الجهاز الظاهري باستخدام نهج الوصول في نفس الوقت .
الخطوات التالية
لمزيد من المعلومات عن العمل مع المفاتيح المزدوجة SSH، راجع الخطوات التفصيلية لإنشاء المفاتيح المزدوجة SSH وإدارتها.
إذا كنت تواجه صعوبات في اتصالات SSH بأجهزة Azure الظاهرية، فراجع استكشاف أخطاء اتصالات SSH بجهاز Azure الظاهري الذي يعمل بنظام Linux وإصلاحها.