تمرين - اختيار أسلوب مصادقة لـ SSH
قبل أن نتمكن من إنشاء جهاز ظاهري لـ Linux في Azure، سنحتاج إلى التفكير في الوصول عن بُعد. نريد أن نتمكن من تسجيل الدخول إلى خادم ويب Linux الخاص بنا لتكوين البرنامج وإجراء الصيانة. النهج الافتراضي لإدارة الأجهزة الظاهرية لنظام Linux المستضافة في Azure هو SSH.
ما SSH؟
Secure Shell (SSH) هو بروتوكول اتصال مُشفّر يسمح بعمليات تسجيل الدخول الآمنة عبر الاتصالات غير الآمنة. يسمح لك SSH بالاتصال بواجهة طرفية من موقع بعيد باستخدام اتصال الشبكة.
يوجد نهجان يمكننا استخدامهما للمصادقة على اتصال SSH: وهما اسم المستخدم وكلمة المرور، أو المفتاح المزدوج لـ SSH.
على الرغم من أن SSH يوفر اتصالاً مشفّراً، يترك استخدام كلمات المرور مع اتصالات SSH الجهاز الظاهري عُرضة لهجمات القوة الغاشمة على كلمات المرور. يتمثّل الأسلوب الأكثر أماناً وتفضيلاً للاتصال بجهاز ظاهري لنظام Linux باستخدام SSH في المفتاح المزدوج العام والخاص، المعروف أيضاً باسم مفاتيح SSH.
باستخدام المفتاح المزدوج لـ SSH، يمكنك تسجيل الدخول إلى الأجهزة الظاهرية لـ Azure المستندة إلى Linux دون كلمة مرور. وهذا نهج أكثر أماناً إذا كنت تُخطط فقط لتسجيل الدخول إلى الجهاز الظاهري من أجهزة كمبيوتر قليلة. إذا كنت بحاجة إلى أن تكون قادراً على الوصول إلى جهاز ظاهري لنظام Linux من مجموعة متنوعة من المواقع، فقد تُشكّل مجموعة اسم المستخدم وكلمة المرور نهجاً أفضل. يتكون المفتاح المزدوج لـ SSH من جزأين: مفتاح عام وخاص.
يُوضَع المفتاح العام على الجهاز الظاهري لنظام Linux الخاص بك أو أي خدمة أخرى ترغب في استخدامها مع تشفير المفتاح العام. يمكن مشاركة ذلك مع أي شخص.
المفتاح الخاص هو ما تقدمه ليتحقق الجهاز الظاهري لنظام Linux الخاص بك من هويتك عند إجراء اتصال SSH. ضع في اعتبارك هذه المعلومات السرية واحمِها كما تفعل مع كلمة مرور أو أي بيانات خاصة أخرى.
يمكنك استخدام المفتاح المزدوج العام والخاص الأحادي نفسه للوصول إلى الخدمات وأجهزة Azure VM المتعددة.
إنشاء المفتاح المزدوج لـ SSH
في أنظمة Linux وWindows 10 وmacOS، يمكنك استخدام الأمر ssh-keygen المدمج لإنشاء ملفات مفاتيح عامة وخاصة لـ SSH.
يتضمن نظام Windows 10 عميل SSH مع Fall Creators Update. تتطلب الإصدارات السابقة من نظام Windows برامج إضافية لاستخدام SSH؛ تحقق من الوثائق للحصول على التفاصيل الكاملة. بدلاً من ذلك، يمكنك تثبيت نظام Linux الفرعي لنظام Windows والحصول على الوظيفة نفسها.
سنستخدم Azure Cloud Shell، التي تُخزن المفاتيح المُنشأة في Azure في حساب التخزين الخاص لديك. يمكنك أيضاً كتابة هذه الأوامر في واجهتك المحلية مباشرة إذا كنت تفضل ذلك. ستحتاج إلى تعديل التعليمات خلال هذه الوحدة النمطية لتعكس جلسة محلية إذا اتبعت هذا النهج.
إليك الحد الأدنى من الأوامر اللازمة لإنشاء المفتاح المزدوج للجهاز الظاهري في Azure. يؤدي هذا إلى إنشاء مفتاح مزدوج عام وخاص من تشفير RSA لبروتوكول SSH الثاني (SSH-2). الحد الأدنى للطول هو 2048، ولكن سنستخدم 4096 من أجل الوحدة النمطية التعليمية هذه.
شغَّل الأمر التالي في Cloud Shell.
ssh-keygen -m PEM -t rsa -b 4096اضغط على "Enter" لقبول الموقع الافتراضي. ينشئ الأمر ملفين:
id_rsaوid_rsa.pubفي دليل~/.ssh. تُستبدل الملفات إذا كانت موجودة.أدخل عبارة مرور ستتذكرها. ستحتاج إلى عبارة المرور هذه عند استخدام مفتاح SSH للوصول إلى الجهاز الظاهري.
يوجد العديد من الخيارات التي يمكنك استخدامها لتوفير اسم الملف أو عبارة المرور لتجنب المطالبات.
عبارة مرور المفتاح الخاص
يمكنك توفير عبارة مرور أثناء إنشاء مفتاحك الخاص. هذه كلمة مرور يجب عليك إدخالها عند استخدام المفتاح. تُستخدم عبارة المرور هذه للوصول إلى ملف مفتاح SSH الخاص وليست كلمة مرور حساب المستخدم.
عندما تضيف عبارة مرور إلى مفتاح SSH الخاص بك، فإنه يشفّر المفتاح الخاص باستخدام مقاييس التشفير المتقدمة 128 بت كي يصبح المفتاح الخاص عديم الفائدة دون عبارة المرور لفك تشفيره.
نوصي بشدة بإضافة عبارة مرور. إذا سرق أحد المتسللين مفتاحك الخاص ولم يكن هذا المفتاح يحتوي على عبارة مرور، فسيتمكن من استخدام هذا المفتاح الخاص لتسجيل الدخول إلى أي خوادم تحتوي على المفتاح العام المماثل. إذا كانت عبارة المرور تحمي مفتاحاً خاصاً، فلا يمكن لهذا المتسلل استخدامها. يوفر هذا طبقة إضافية من الأمان للبنية الأساسية الخاصة بك على Azure.
استخدام المفتاح المزدوج لـ SSH مع الجهاز الظاهري Azure Linux
بعد إنشاء المفتاح المزدوج، يمكنك استخدامه مع الجهاز الظاهري لنظام Linux في Azure. يمكنك توفير المفتاح العام أثناء إنشاء الجهاز الظاهري، أو إضافته بعد إنشاء الجهاز الظاهري.
يمكنك عرض محتويات الملف في Cloud Shell عن طريق تشغيل الأمر التالي.
cat ~/.ssh/id_rsa.pub
سيبدو شيئاً شبيهاً بالناتج التالي:
ssh-rsa XXXXXXXXXXc2EAAAADAXABAAABAXC5Am7+fGZ+5zXBGgXS6GUvmsXCLGc7tX7/rViXk3+eShZzaXnt75gUmT1I2f75zFn2hlAIDGKWf4g12KWcZxy81TniUOTjUsVlwPymXUXxESL/UfJKfbdstBhTOdy5EG9rYWA0K43SJmwPhH28BpoLfXXXXXGX/ilsXXXXXKgRLiJ2W19MzXHp8z3Lxw7r9wx3HaVlP4XiFv9U4hGcp8RMI1MP1nNesFlOBpG4pV2bJRBTXNXeY4l6F8WZ3C4kuf8XxOo08mXaTpvZ3T1841altmNTZCcPkXuMrBjYSJbA8npoXAXNwiivyoe3X2KMXXXXXdXXXXXXXXXXCXXXXX/ azureuser@myserver
انسخ هذه القيمة، حتى تتمكن من استخدامها في التمرين التالي.
استخدام مفتاح SSH عند إنشاء جهاز ظاهري لنظام Linux
لتطبيق مفتاح SSH أثناء إنشاء جهاز ظاهري جديد لنظام Linux، ستحتاج إلى نسخ محتويات المفتاح العام وتزويد مدخل Azure به، أو توفير ملف المفتاح العام لأمر Azure CLI أو Azure PowerShell. سنستخدم هذا النهج عندما ننشئ جهازاً ظاهرياً لنظام Linux خاص بنا.
إضافة مفتاح SSH إلى جهاز ظاهري موجود لنظام Linux
إذا كنت أنشأت جهازاً ظاهرياً بالفعل، يمكنك تثبيت المفتاح العام على الجهاز الظاهري لنظام Linux الخاص بك باستخدام الأمر ssh-copy-id. بعد أن يتم التصريح لـ SSH بالمفتاح، يمنح الوصول إلى الخادم دون كلمة مرور، على الرغم من أنه سيظل يُطلب منك عبارة مرور المفتاح إذا عيّنت واحدة.
على سبيل المثال، إذا كان لدينا جهاز ظاهري لنظام Linux يسمى myserver مع مستخدم azureuser، يمكننا تشغيل الأمر التالي لتثبيت ملف المفتاح العام، والتصريح للمستخدم بالمفتاح.
ssh-copy-id -i ~/.ssh/id_rsa.pub azureuser@myserver
الآن بعد أن أصبح لدينا مفتاحنا العام، لننتقل إلى مدخل Azure ونُنشئ جهازاً ظاهرياً لنظام Linux.
هل تحتاج إلى مساعدة؟ راجع دليل استكشاف الأخطاء وإصلاحها الذي نقدمه أو يمكنك توفير ملاحظات معينة عبر الإبلاغ عن مشكلة.