قم بإعداد تسجيل دخول آمن بدون كلمة مرور إلى خادم Ubuntu البعيد باستخدام مفاتيح SSH
SSH هو بروتوكول شبكة خادم عميل آمن يساعد كمبيوتر العميل على الاتصال والتواصل مع خادم بعيد. يضمن اتصال SSH إرسال الأوامر التي يتم كتابتها في الجهاز الطرفي إلى الخادم البعيد من خلال قناة مشفرة.
هناك نوعان من آليات المصادقة المستخدمة للاتصال بالخادم البعيد ، المصادقة القائمة على كلمة المرور (عرضة لهجمات القوة الغاشمة) والمصادقة القائمة على مفاتيح SSH (وهي آمنة للغاية).
في المصادقة المستندة إلى SSH ، يتم إنشاء زوج من المفاتيح على جهاز الكمبيوتر العميل ، يُطلق عليه اسم المفتاح العام والمفتاح الخاص. يتم توفير نسخة من هذا المفتاح العمومي على الخادم البعيد. عندما يرسل العميل طلب اتصال إلى الخادم ، يقوم الخادم بإنشاء سلسلة عشوائية وتشفيرها باستخدام المفتاح العام. لا يمكن فك تشفير هذه السلسلة إلا باستخدام المفتاح الخاص المتاح على جهاز الكمبيوتر العميل. تضمن هذه الطريقة أنه لا يمكن الوصول إلى الخادم إلا من خلال العملاء الذين يحتويون على المفتاح الخاص.
في هذا الدليل ، سنرى كيفية إعداد مفاتيح SSH على خادم Ubuntu 20.04 LTS.
تحقق مما إذا كان لديك أي مفتاح SSH موجود على جهاز الكمبيوتر الخاص بك
للتحقق مما إذا كان SSH Keypair موجودًا بالفعل على جهاز الكمبيوتر الخاص بك ، اكتب هذا الأمر في الجهاز الطرفي.
ls -l ~ / .ssh / id _ *. pub
إذا عاد الأمر أعلاه لا يوجد ملف او مجلد
أو لم يتم العثور على تطابق
، فهذا يعني أن زوج مفاتيح SSH غير موجود.
إذا كان لديك زوج مفاتيح SSH موجود ، فيمكنك إما استخدام نفس زوج المفاتيح للوصول إلى خادمين عن بُعد ، أو يمكنك أيضًا إنشاء زوج مفاتيح مختلف له اسم مختلف. دعنا ننتقل إلى الخطوة التالية ونرى كيفية إنشاء مفاتيح SSH لكلتا الحالتين.
إنشاء مفاتيح SSH على جهاز كمبيوتر عميل
لإنشاء زوج مفاتيح SSH جديد على جهاز الكمبيوتر الخاص بك ، اكتب الأمر كما هو موضح أدناه.
ssh-كجن
بشكل افتراضي ، تكون مفاتيح SSH من 2048 بت. للحصول على أمان أفضل ، إذا كنت تريد إنشاء مفاتيح SSH ذات وحدات بت أعلى ، فاستخدم الأمر التالي.
4096
إذا تم تشغيل الأمر بنجاح ، فستظهر الرسالة التالية على شاشتك.
توليد زوج مفاتيح rsa عام / خاص. أدخل الملف الذي تريد حفظ المفتاح فيه (/ home/harshit/.ssh/id_rsa):
الآن إذا لم يكن لديك أي زوج مفاتيح SSH موجود على جهاز الكمبيوتر الخاص بك ، فاضغط ببساطة يدخل
، ولكن إذا كان لديك مفتاح SSH موجود ، فاحفظ المفتاح باسم ملف مختلف كما هو موضح أدناه.
أدخل الملف الذي تريد حفظ المفتاح فيه (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx
استبدل ملف xxx
في نهاية اسم الملف باسم مناسب ، كما هو موضح أدناه واضغط على يدخل
.
أدخل الملف الذي تريد حفظ المفتاح فيه (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1
سيطلب منك الموجه التالي إدخال عبارة مرور ذات طول تعسفي ، وسيضمن أمانًا من مستويين على جهازك.
أدخل عبارة المرور (فارغة بدون عبارة مرور): أدخل عبارة المرور نفسها مرة أخرى:
سيضمن إدخال عبارة المرور هذه أنه حتى إذا تمكن الشخص من الوصول إلى مفتاحك الخاص ، فلن يتمكن من الوصول إلى خادمك البعيد بدون عبارة المرور هذه.
بمجرد اكتمال العملية برمتها ، تظهر الرسالة التالية على شاشتك.
تم إنشاء مفاتيح SSH على نظامك. حان الوقت الآن لنسخ المفتاح العام على الخادم البعيد.
نسخ المفتاح العام إلى خادم Ubuntu البعيد
الطريقة الأسهل والأسرع لنسخ المفتاح العام إلى الخادم البعيد هي باستخدام ملف ssh- نسخة- معرف
خدمة. ولكن إذا لم تكن هذه الأداة المساعدة متوفرة على جهازك لسبب ما ، فيمكنك أيضًا استخدام الطرق الأخرى المتوفرة في هذا القسم.
استخدام الأداة المساعدة ssh-copy-id
ال ssh- نسخة- معرف
تتوفر الأداة المساعدة بشكل افتراضي على جهاز Ubuntu الخاص بك والذي ينسخ المفتاح العام من جهازك إلى الدليل المناسب لجهاز Ubuntu البعيد.
لنسخ مفتاح ssh العام ، ما عليك سوى كتابة الأمر في الجهاز الطرفي ، كما هو موضح أدناه.
ssh-copy-id username @ hostname
استبدل ملف اسم االمستخدم
و اسم المضيف
في الأمر أعلاه مع اسم المستخدم واسم المضيف لخادمك.
ستظهر الرسالة التالية على جهازك الطرفي إذا كنت تتصل بالمضيف للمرة الأولى ، فاكتب نعم
و اضغط يدخل
.
لا يمكن إثبات أصالة المضيف "172.105.XX.XX (172.105.XX.XX)". بصمة مفتاح ECDSA هي xx: xx: xx: xx: 77: fe: 73: xx: xx: 55: 00: ad: d6: xx: xx: xx. هل أنت متأكد أنك تريد متابعة الاتصال (نعم / لا)؟ نعم
الآن ssh- نسخة- معرف
ستبحث الأداة المساعدة عن الملف الذي يحمل الاسم id_rsa.pub
الذي يحتوي على مفتاح SSH العام. بمجرد اكتمال عملية المسح ، سيطالبك بإدخال كلمة مرور الخادم البعيد ، كما هو موضح أدناه. اكتب كلمة المرور واضغط يدخل
.
/ usr / bin / ssh-copy-id: INFO: محاولة تسجيل الدخول باستخدام المفتاح (المفاتيح) الجديدة ، لتصفية أي مفتاح تم تثبيته بالفعل / usr / bin / ssh-copy-id: INFO: 1 key (s) ) إلى التثبيت - إذا طُلب منك الآن تثبيت المفاتيح الجديدة [email protected] كلمة مرور:
بمجرد إضافة المفتاح ، ستظهر الرسالة التالية على جهازك كمخرج.
عدد المفاتيح المضافة: 1 حاول الآن تسجيل الدخول إلى الجهاز باستخدام: "ssh '[email protected]'" وتحقق للتأكد من إضافة المفتاح (المفاتيح) الذي تريده فقط.
في حالة وجود مفاتيح SSH متعددة على جهاز الكمبيوتر العميل الخاص بك ، فلكي تقوم بنسخ المفتاح العام المناسب إلى جهاز الكمبيوتر البعيد ، اكتب الأمر في النمط الموضح أدناه.
ssh-copy-id -i id_rsa_xxx.pub username @ host
💡 نصيحة
لا تنس أن تضع .pub في نهاية اسم الملف أثناء الكتابة في المحطة.
نسخ المفتاح العام بطريقة الأنابيب
اكتب الأمر التالي في المحطة إذا ssh- نسخة- معرف
المنفعة غير متوفرة. قد يبدو هذا الأمر أطول قليلاً ولكنه يعمل بشكل مناسب.
القط ~ / .ssh / id_rsa.pub | ssh remote_username @ server_ip_address "mkdir -p ~ / .ssh && touch ~ / .ssh / author_keys && chmod -R go = ~ / .ssh && cat >> ~ / .ssh / author_keys"
يحل محل remote_username
و server_ip_address
باسم المستخدم وعنوان IP الخاصين بك.
إذا كان لديك عدة مفاتيح SSH متوفرة على جهاز الكمبيوتر الخاص بك ، فاستبدل ملف id_rsa.pub
بملف مفتاح SSH العام الذي تختاره. فمثلا، id_rsa_client_1.pub
.
اكتب كلمة مرور المستخدم البعيد عندما يُطلب منك ذلك واضغط يدخل
.
كلمة مرور [email protected]:
بمجرد كتابة كلمة المرور ، فإن ملف id_rsa.pub
سيتم نسخ الملف إلى المفوضين
ملف الخادم البعيد.
نسخ المفتاح العمومي يدويًا
استخدم هذه الطريقة عندما لا يكون لديك وصول إلى نظامك البعيد من خلال مصادقة كلمة المرور.
افتح ال id_rsa.pub
باستخدام ملف قط
الأمر في المحطة. يمكنك أيضًا فتحه من محرر نصوص ، والغرض من ذلك هو نسخ محتوى الملف فقط.
القط ~ / .ssh / id_rsa.pub
سيبدو محتوى الملف كما هو موضح أدناه.
سه-آر إس إيه AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH your_name @ your_PC
الآن ، قم بتسجيل الدخول إلى الخادم البعيد الخاص بك والصق المحتوى المنسوخ باستخدام الأمر الموضح أدناه. استبدل ملف above_string
مع المحتوى المنسوخ.
echo above_string >> ~ / .ssh / author_keys
تكوين مفاتيح SSH متعددة (اختياري)
هذه الخطوة مخصصة للأشخاص الذين لديهم إعدادات SSH متعددة على أجهزة الكمبيوتر العميل الخاصة بهم. تخطي هذا القسم إذا كان لديك إعداد SSH واحد فقط.
لإدارة عدة مفاتيح SSH ، سننشئ الآن ملف التكوين
ملف داخل ملف .ssh
الدليل باستخدام الأمر الموضح أدناه.
cd ~ / .ssh vim config
نوع أنا
للدخول في وضع الأوامر واكتب تفاصيل عدة مضيفين ، كما هو موضح في المثال التالي:
اسم المضيف لخادم ubuntu البعيد 172.105.XX.XX User root IdentityFile ~ / .ssh / id_rsa_client_1 المضيف البعيد ubuntu-server HostName 172.106.XX.XX User root IdentityFile ~ / .ssh / id_rsa_client_2
وبالمثل ، اكتب تفاصيل الخوادم البعيدة الأخرى ومفاتيحها. بمجرد اكتمال العملية اضغط خروج
و : wq
للحفظ والخروج.
الآن العمليات اللاحقة هي نفسها لكل من وجود مفاتيح SSH مفردة أو متعددة على جهاز الكمبيوتر العميل.
قم بتسجيل الدخول إلى الخادم البعيد الخاص بك باستخدام مفاتيح SSH
بمجرد اكتمال عملية نسخ المفتاح العام ، قم بتسجيل الدخول إلى الخادم البعيد عن طريق كتابة الأمر كما هو موضح أدناه.
ssh remote_username @ server_ip_address
إذا قدمت عبارة المرور أثناء إنشاء زوج المفاتيح ، فسيُطلب منك إدخالها. سيتم فتح جلسة جديدة بعد اكتمال عملية المصادقة.
لقد نجحت الآن في تكوين مصادقة تستند إلى مفاتيح SSH على الخادم البعيد. لكن المصادقة القائمة على كلمة المرور لا تزال نشطة على الخادم الخاص بك ، وهذا يعني أن خادمك البعيد لا يزال عرضة لهجمات القوة الغاشمة.
لذا سنقوم الآن بتعطيل آلية تسجيل الدخول المعتمدة على كلمة المرور تمامًا من خادمنا البعيد.
تعطيل آلية تسجيل الدخول المستندة إلى كلمة المرور
قبل إجراء أي تغييرات ، تأكد من أن المستخدم الجذر أو أي مستخدم تم تمكين sudo لحسابك البعيد لديه حق الوصول إلى الخادم الخاص بك باستخدام نظام المصادقة المستند إلى مفتاح SSH. ستؤدي هذه الخطوة إلى قفل أو تعطيل تسجيل الدخول المستند إلى كلمة المرور تمامًا ، لذا من الضروري أن يكون لامتيازات جذر مستخدم واحد على الأقل حق الوصول إلى الخادم من خلال مفتاح SSH.
قم بتسجيل الدخول إلى خادم Ubuntu البعيد الخاص بك واكتب الأمر الموضح أدناه.
sudo vim / etc / ssh / sshd_config
- صحافة
خروج
,/
واكتب "PasswordAuthentication" واضغطأدخل
. - الآن اضغط
أنا
وقم بتغيير قيمة "PasswordAuthentication yes" إلى "PasswordAuthentication no". - صحافة
خروج
وكرر العملية المذكورة أعلاه للعثور على "ChallengeResponseAuthentication" و "UsePAM" وتغيير قيمها إلىرقم
كذلك.
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
بمجرد تعيين جميع القيم على رقم
، صحافة خروج
، نوع : wq
وضرب أدخل
.
لتنشيط جميع التغييرات ، قم بإعادة تشغيل ملف ssh
الخدمة باستخدام الأمر أدناه.
إعادة تشغيل sudo systemctl ssh
افتح الآن نافذة طرفية جديدة على جهاز الكمبيوتر الخاص بك وتحقق من أن مصادقة مفتاح SSH تعمل بشكل صحيح قبل إغلاق الجلسة الحالية.
بمجرد اكتمال عملية التحقق ، أغلق جميع الجلسات الجارية.
لقد نجحنا الآن في تكوين المصادقة المستندة إلى مفتاح SSH على خادم Ubuntu 20.04 الخاص بنا. الآن لا يمكن لأي شخص تسجيل الدخول إلى الخادم الخاص بك باستخدام آلية تسجيل الدخول القائمة على كلمة المرور.