كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

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

ssh passwordless linux 00 featured image 800x400.jpg - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

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

قم بتثبيت الحزم

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

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

sudo apt install ssh

ssh passwordless linux 02 installing openssh.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

قم بإنشاء مفتاح SSH الخاص بك في Linux

من السهل حقًا إنشاء مفتاح SSH في Linux. فقط أخبر OpenSSH أنك بحاجة إلى إنشاء المفتاح. من الجيد أيضًا تحديد مقدار البتات باستخدام العلامة -b والنوع الذي يحتوي على -t. يعد المفتاح 4096 بت هو الأفضل ، لأنه يوفر تشفيرًا أقوى.

ssh-keygen -t ed25519

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

سيستغرق جهاز الكمبيوتر الخاص بك بضع ثوانٍ لإنشاء مفتاحك. عندما تنتهي ، ستطبع تمثيلًا فنيًا ASCII لمفتاحك على الجهاز.

إرسال مفتاحك إلى مضيف Linux البعيد

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

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@ip_remote_host

استبدل ip_remote_host بعنوان IP الفعلي للمضيف البعيد ، والذي ستديره عبر SSH. استبدل اسم المستخدم باسم المستخدم الفعلي على المضيف البعيد.

ssh passwordless linux 04 ssh copy id.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

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

ssh passwordless linux 05 successful copy.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

اختبار اتصال SSH الخاص بك في Linux

باستخدام مفتاح SSH في الخادم البعيد ، يمكنك الآن اختبار ما إذا كان اتصالك يعمل بشكل صحيح.

قم بتسجيل الدخول باستخدام الأمر التالي:

ssh username@ip_remote_host

سيقوم المضيف البعيد بتسجيل دخولك دون طلب كلمة مرور حساب المستخدم.

ssh passwordless linux 06 passwordless login.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

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

ssh passwordless linux 07 failed login.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

تكوين SSH لحظر كلمات المرور

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

ssh passwordless linux 08 two factor sample.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

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

يمكنك العثور على ملف تكوين برنامج SSH daemon الخاص بك في “/etc/ssh /sshd_config”. افتح الملف على الخادم باستخدام sudo ومحرر النصوص المفضل لديك. على سبيل المثال ، افتح هذا الملف باستخدام nano عن طريق تشغيل الأمر التالي:

sudo nano /etc/ssh/sshd_config

ابحث عن الأسطر أدناه بالضغط على Ctrl + W وقم بتحريرها لتبدو مثل المثال. قم بإلغاء التعليق على كلا الإدخالات وقم بتغيير القيم إلى لا.

كلمة المرور

PasswordAuthentication no
PermitEmptyPasswords no

ssh passwordless linux 09 find option nano.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

تحدد PasswordAuthentication ما إذا كنت تريد استخدام مصادقة كلمة المرور. قمنا بتعيين هذا على “لا” لأننا نريد استخدام مفاتيح SSH فقط.

يحدد PermitEmptyPasswords ما إذا كان الخادم يسمح بتسجيل الدخول بكلمة مرور فارغة. يجب ألا تسمح بهذا مطلقًا ، لذلك قمنا بتعيينه على “لا”.

ssh passwordless linux 10 update sshd settings.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

بعد ذلك ، ابحث عن سطر “UsePAM” وقم بتغييره إلى “لا”. سيمنع هذا البرنامج الخفي من استخدام أي طرق مصادقة (كلمة المرور ، Kerberos ، إلخ) بخلاف مفاتيح SSH.

UsePAM no

ssh passwordless linux 11 disable pam support.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

احفظ الملف بالضغط على Ctrl + O ، ثم Ctrl + X وأعد تحميل خادم SSH.

sudo systemctl restart ssh

الآن بعد أن نجحت في تكوين الخادم الخاص بك لاستخدام مفاتيح SSH فقط للمصادقة ، سيتم رفض أي شخص يحاول تسجيل الدخول بدون مفتاح RSA صالح على الفور.

ssh passwordless linux 12 no key login.png - كيفية تمكين عمليات تسجيل الدخول عبر SSH بدون كلمة مرور على نظام Linux

أسئلة شائعة

س 1. تظهر لي رسالة “تم رفض الاتصال” عندما أرسل مفتاح SSH إلى خادم Linux الخاص بي. كيف يمكنني حل هذه المشكلة؟
الجواب. تأكد من تشغيل خادم SSH على المضيف البعيد. يمكنك التحقق من ذلك عن طريق تشغيل sudo systemctl status ssh. إذا لم تكن الخدمة قيد التشغيل ، فيمكنك بدء تشغيلها باستخدام هذا الأمر: sudo systemctl start ssh.

إذا كان جدار الحماية قيد التشغيل على الخادم ، فتأكد من فتح المنفذ 22. يمكنك القيام بذلك عن طريق تشغيل حالة sudo ufw. إذا لم يكن SSH مدرجًا ، فيمكنك تمكينه عن طريق تشغيل هذا الأمر: sudo ufw allow ssh.

س 2. يظهر لي الخطأ “تم رفض الإذن (المفتاح العام)” عندما أحاول تسجيل الدخول. ماذا أفعل؟
الجواب. يعني هذا الخطأ أنك هيأت خادمك لاستخدام المفاتيح للمصادقة ، لكنك ما زلت تحاول تسجيل الدخول بكلمة مرور. يمكن أن يكون هذا إما بسبب فقدان مفتاح RSA أو إعداد SSH غير صحيح. تأكد من نسخ مفتاحك العمومي إلى الخادم بشكل صحيح وأنك تحدد المفتاح العام الصحيح عند الاتصال.

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

س 4. هل من الممكن استخدام مفاتيح SSH متعددة على نفس خادم Linux البعيد؟
الجواب. نعم. يمكنك استخدام الخيار -f في OpenSSH لتحديد المفتاح الدقيق الذي تريد استخدامه للاتصال بخادم بعيد. على سبيل المثال ، سيؤدي تشغيل

 ssh -f ~/.ssh/id_rsa_2 username@remote_ip_address

إلى توصيلك بخادمك البعيد باستخدام مفتاح “id_rsa_2” بدلاً من “id_rsa” الافتراضي.

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

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

لإصلاح ذلك ، قم بتسجيل الدخول إلى الخادم البعيد وتشغيل

 chmod 700 /home/$USER/.ssh/* && chmod 600 /home/$USER/.ssh.

سيؤدي هذا إلى تعيين بت الأذونات الصحيحة لكل من مجلد “.ssh” ومحتوياته.

جميع النصائح المذكورة هنا هي إعلامية وتم ترجمتها من المواقع الأجنية و لا تغني من استشارة أهل الاختصاص راجع صفحة

إشعار حقوق الطبع لموقع أحلى هاوم الإلكتروني