العودة إلى المدونة

إعداد خادم Linux الخاص بك لاستخدام المصادقة القائمة على مفتاح SSH

إعداد خادم Linux الخاص بك لاستخدام المصادقة القائمة على مفتاح SSH

SSH على خادم لينكس

SSH، والمعروف أيضاً باسم القشرة الآمنة (secure shell)، هو بروتوكول يمكن استخدامه للاتصال والتواصل مع الخادم. يمكنك الاتصال بخادم لينكس الخاص بك لبدء جلسة طرفية باستخدام هذا البروتوكول المشفر. إذا كنت تستخدم خادم OpenSSH، فهناك طريقتان رئيسيتان يمكنك اتباعهما لإجراء عملية المصادقة. الأولى هي المصادقة القياسية القائمة على كلمة المرور. هنا، ما عليك سوى استخدام اسم المستخدم وكلمة المرور للوصول إلى حسابك. والطريقة الأخرى هي إعداد خادم لينكس الخاص بك للمصادقة القائمة على مفتاح SSH.

في هذا الدليل، سنركز على كيفية تكوين خادم لينكس الخاص بك لاستخدام مفاتيح SSH كوسيلة أساسية للمصادقة. سنناقش أيضاً سبب تفضيل مفاتيح SSH غالباً على آلية الحماية المعتادة بكلمة المرور.

ما هي مفاتيح SSH؟

مفاتيح SSH تشبه بيانات الاعتماد التي تستخدمها لتسجيل الدخول إلى حسابك على الخادم. بدلاً من إدخال اسم المستخدم وكلمة المرور، يمكنك استخدام زوج مفاتيح SSH، وهو أيضاً بمثابة بيانات اعتماد للوصول. على الرغم من أن المفاتيح مشفرة، يجب عليك معاملتها كبيانات اعتماد للمصادقة لأن هذا هو الغرض الذي تخدمه.

يتكون مفتاح SSH النموذجي من جزأين: مفتاح مصرح به ومفتاح هوية. المفتاح المصرح به هو المفتاح العام الذي يعمل بالاشتراك مع مفتاح الهوية الخاص بك لمنحك حق الوصول إلى الحساب. يوجد المفتاح العام على الخادم البعيد الذي تريد تسجيل الدخول إليه باستخدام SSH ويظل في ملف ~/.ssh/authorized_keys المرتبط بحساب المستخدم الخاص بك. تعمل مفاتيح الهوية على التحقق من هويتك كالمستخدم الصحيح لضمان إمكانية وصول الموظفين المصرح لهم فقط إلى الحساب المحدد. وتسمى هذه المفاتيح مجتمعة بمفاتيح المستخدم لأنها تصادق على هوية المستخدم. بمجرد أن يتمكن الخادم من التحقق من كلا المفتاحين، يتم بدء جلسة shell لتنفيذ أوامرك.

لديك أيضاً مفاتيح المضيف ومفاتيح الجلسة. يقوم البروتوكول بمصادقة الكمبيوتر المحلي أو النظام أو الخادم باستخدام مفتاح المضيف. تساعد مفاتيح الجلسة في تشفير تدفق البيانات عبر الاتصال. هذا يجعل جلستك والنشاط المقابل لها أكثر أماناً وحماية.

مفاتيح SSH مقابل الحماية بكلمة المرور

السبب الرئيسي وراء تفضيل المصادقة القائمة على مفتاح SSH على الحماية بكلمة المرور هو أن الأخيرة يمكن أن تجعلك عرضة للهجمات الإلكترونية. لا يستخدم معظم الأفراد كلمات مرور معقدة للغاية حتى يتمكنوا من تذكرها عندما يحتاجون إلى تسجيل الدخول. ونتيجة لذلك، يخلق هذا ثغرة أمنية. يستخدم العديد من المهاجمين القوة الغاشمة لكسر كلمة المرور البسيطة نسبياً واختراق الحساب. وقد أصبح هذا سهلاً بشكل خاص هذه الأيام بسبب الأتمتة وتقنيات الاختراق المتقدمة.

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

توليد مفاتيح SSH

لتوليد زوج مفاتيح SSH الخاص بك، تحتاج إلى تصفح مجموعة أدوات OpenSSH وتحديد موقع ssh-keygen. هذه أداة مساعدة خاصة تتيح لك توليد زوج مفاتيح SSH بحجم حوالي 2048 بت. ابدأ بتشغيل هذا الأمر:

سيؤدي هذا إلى ظهور الرسالة التالية:

ستقوم الرسالة بإنشاء مفتاح خاص باسم id_rsa ومفتاح عام باسم id_rsa.pub. عند هذه النقطة، يمكنك اختيار المكان الذي تريد وضع المفتاح فيه. نوصي بالبقاء في الموقع الافتراضي بالضغط على Enter. يضمن الالتزام بالموقع الافتراضي أن يقوم الخادم تلقائيًا بتحديد موقع المفاتيح والتحقق منها في كل مرة تقوم فيها بتسجيل الدخول باستخدام هذا النظام. الموقع الافتراضي هو دليل ~/.ssh في الدليل الرئيسي (home). إذا كنت تفضل تحديد مكان مختلف، فاكتب الموقع.

إعادة كتابة مفاتيح SSH القديمة

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

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

إعداد عبارة المرور

بمجرد إعداد المفاتيح في الدليل، سيُطلب منك ما إذا كنت تريد تقديم عبارة مرور:

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

أخيرًا، يجب أن يكون لديك الآن مفاتيح SSH الخاصة بك والتي يمكنك استخدامها لمصادقة العميل.

تضمين مفتاح SSH الخاص بك في حساب الخادم الخاص بك

قبل استخدام المفاتيح للمصادقة، تحتاج إلى تضمين المفتاح العام على خادم Linux البعيد. بعد ذلك، سنوضح لك كيفية القيام بذلك عند إنشاء خادم CloudSigma الخاص بك. أولاً، تحتاج إلى العثور على مفتاح SSH العام الخاص بك حتى تتمكن من نسخه ولصقه. إذا كنت قد استخدمت الطريقة المذكورة أعلاه لإنشاء زوج مفاتيح SSH الخاص بك، فيمكنك العثور على المفتاح العام عن طريق كتابة ما يلي:

سيؤدي هذا إلى ظهور مفتاح SSH العام بهذا الشكل:

انسخ هذه القيمة لاستخدامها لاحقًا. عند إنشاء خادم باستخدام CloudSigma، سيكون لديك خيار إضافة مفتاح SSH بعد تحديد حجم الخادم وصورة نظام التشغيل:

single server creation

انقر فوق إضافة والصق ما قمت بنسخه لتضمين مفتاح SSH في خادمك. ونتيجة لذلك، في كل مرة تقوم فيها بتشغيل خادمك، سيكون مفتاح SSH المحقون موجودًا بالفعل.

نسخ مفتاح عام إلى خادم موجود

بينما تعمل الطريقة المذكورة أعلاه عند إنشاء خادم جديد، هل من الممكن تضمين مفتاح SSH في خادم موجود؟ الإجابة هي نعم، وهناك طرق متعددة يمكنك اتباعها للقيام بذلك اعتمادًا على الأدوات المتاحة لديك.

استخدام SSH-Copy-ID

هذه هي الطريقة الأبسط والأسهل لنسخ مفتاح عام. كل ما تحتاجه هو الأداة المساعدة ssh-copy-id التي ستجدها في حزمة OpenSSH القياسية. ولكن قبل استخدام هذه الطريقة، تأكد من تفعيل المصادقة المستندة إلى كلمة المرور على خادمك. لنسخ المفتاح، ستقوم بتطبيق صيغة ssh-copy-id ثم إدخال المضيف البعيد الذي ترغب في الاتصال به. سيتعين عليك أيضًا تحديد الحساب الذي تتصل به. يجب أن يكون لديك وصول مستند إلى كلمة المرور إلى الحساب، حتى يتم نسخ مفتاحك في الموقع الصحيح. يجب أن يبدو الأمر كما يلي:

قد يؤدي هذا إلى ظهور رسالة مثل الرسالة التالية على شاشتك:

يحدث هذا عادةً إذا كانت هذه هي المرة الأولى التي تتصل فيها بهذا المضيف البعيد المعين. هذا يعني ببساطة أن الكمبيوتر فشل في التعرف على المضيف. كل ما عليك فعله هو كتابة 'yes' والضغط على Enter. بمجرد القيام بذلك، ستقوم الأداة بفحص الحساب للعثور على مفتاحك العام. عند تحديد موقعه، ستطلب منك إدخال كلمة مرور حسابك:

بعد ذلك، يمكنك إدخال كلمة المرور الخاصة بك. عند الاتصال بحسابك، ستقوم الأداة بنسخ محتوى المفتاح ~/.ssh/id_rsa.pub ولصقه تحت authorized_keys في دليل ~/.ssh على حسابك البعيد. ستظهر لك بعد ذلك الرسالة التالية:

هذا يعني أنك قمت بنسخ مفتاحك العام بنجاح إلى خادمك البعيد الحالي.

استخدام SSH

هذه طريقة تقليدية إلى حد ما لنسخ مفتاحك العام إلى خادم. ويُفضل استخدامها إذا لم يكن لديك وصول إلى أداة ssh-copy-id. ومرة أخرى، يجب أن يكون لديك وصول مستند إلى كلمة المرور إلى حسابك. ما تفعله بشكل أساسي هو إخراج محتوى المفتاح العام على جهاز الكمبيوتر الخاص بك ونقله إلى الخادم البعيد عبر اتصال SSH المنشأ بينهما. يجب أن يكون الأمر الذي ستستخدمه لهذا الغرض كما يلي:

كما ترى، لقد حددنا أنه يجب وضع المفتاح في ملف authorized_keys داخل دليل ~/.ssh على الخادم. يضمن استخدام الرمز >> أيضًا أننا نقوم بإضافة المفاتيح بدلاً من الكتابة فوقها. بعد تشغيل الأمر، قد تظهر لك هذه الرسالة:

على غرار الرسالة السابقة، هذا يعني أن الكمبيوتر لم يتعرف على المضيف البعيد. اكتب 'yes' واضغط على Enter للمتابعة. الآن، ستدخل كلمة مرور الحساب:

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

يدويًا

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

سيظهر محتوى مفتاح SSH العام الخاص بك على النحو التالي:

بعد ذلك، تحتاج إلى الوصول إلى حسابك على المضيف البعيد بأي وسيلة متاحة. عند تسجيل الدخول، تحقق للتأكد من وجود دليل ~/.ssh. إذا لم يكن موجودًا، يمكنك تشغيل الأمر التالي لإنشائه:

الآن، يمكنك استخدام هذا الأمر لإضافة محتوى ملف id_rsa.pub إلى ملف authorized_keys في دليل ~/.ssh هذا على الخادم البعيد:

بدلاً من كتابة 'public_key_string' في هذا الأمر، سيتعين عليك إدخال محتوى المفتاح الذي استخرجته عن طريق تشغيل الأمر cat ~/.ssh/id_rsa.pub سابقًا.

المصادقة باستخدام مفتاح SSH الخاص بك

الآن، يمكنك الدخول إلى حسابك بسهولة باستخدام مفاتيح SSH الخاصة بك فقط. هذا يعني أنك لم تعد بحاجة إلى كلمة المرور الخاصة بك للوصول إلى حساب الخادم الخاص بك. ستستخدم بيانات الاعتماد التي تستخدمها عادةً لأغراض تسجيل الدخول:

قد يؤدي هذا إلى ظهور الرسالة التالية:

لا تقلق إذا رأيت هذه الرسالة. فهي تعني ببساطة أن النظام المحلي غير قادر على التعرف على المضيف البعيد. يحدث هذا عادةً إذا كنت تتصل بالمضيف للمرة الأولى على الإطلاق. كل ما عليك فعله هو كتابة 'yes' والضغط على Enter. بالعودة إلى بعض الخطوات السابقة، إذا قمت بتطبيق عبارة مرور، فهذا هو المكان الذي سيتعين عليك إدخالها فيه. إذا لم تفعل ذلك، فستقوم بتسجيل الدخول إلى حسابك مباشرة بعد مصادقة مفاتيح SSH. سيؤدي هذا إلى فتح جلسة shell جديدة من خلال حسابك الحالي على الكمبيوتر المحلي.

كيفية تعطيل مصادقة كلمة المرور على خادمك؟

الآن بعد أن عرفت كيفية إعداد مفاتيح SSH الخاصة بك، تحتاج إلى تعطيل مصادقة كلمة المرور. حتى لو كنت قادرًا على استخدام مفاتيح SSH للمصادقة، فإنك لا تزال عرضة لهجمات القوة الغاشمة (brute force) إذا كانت عملية مصادقة كلمة المرور نشطة. قبل تعطيل آلية مصادقة كلمة المرور، تأكد من أن تكوين المصادقة المستندة إلى مفتاح SSH هو لحساب root على الخادم أو أن الحساب المكون لديه صلاحيات sudo. السبب في تأكيد ذلك هو التأكد من احتفاظك بالوصول الإداري إلى الحساب حتى عند تعطيل كلمات المرور. الآن يمكنك استخدام مفتاح SSH هذا لتسجيل الدخول إلى حساب الخادم الخاص بك. الخطوة التالية هي فتح ملف تكوين SSH daemon:

هنا، تحتاج إلى البحث عن التوجيه التالي:

تحتاج إلى إلغاء تعليق هذا السطر وتغيير القيمة إلى 'no'، على النحو التالي:

سيؤدي القيام بذلك إلى تعطيل المصادقة المستندة إلى كلمة المرور. ما عليك سوى حفظ الملف وإغلاقه عند الانتهاء. أخيرًا، تحتاج إلى إعادة تشغيل جهازك لتطبيق التغييرات. إذا كنت مستخدمًا لجهاز Ubuntu أو Debian، فيمكنك أيضًا استخدام الأمر التالي لتعطيل الدخول المستند إلى كلمة المرور:

للتأكد من أن برنامج الخدمة الخلفية (daemon)، أو sshd، يسمح فقط بالمصادقة المستندة إلى SSH على الخادم في أجهزة CentOS أو Fedora، استخدم الأمر:

الخاتمة

بمجرد إكمال كل هذه الخطوات، يجب أن تكون قد قمت بتكوين وتشغيل المصادقة المستندة إلى مفتاح SSH على خادمك. الآن، يمكنك الاطمئنان إلى أن خوادمك آمنة ومحمية!

حوسبة سعيدة!

author

Akshay Nagpal

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.