كيفية إضافة مفاتيح SSH على أوبونتو 20.04

كيفية إضافة مفاتيح SSH على أوبونتو 20.04

قم بإعداد تسجيل دخول آمن بدون كلمة مرور إلى خادم Ubuntu البعيد باستخدام مفاتيح SSH

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

هناك نوعان من آليات المصادقة المستخدمة للاتصال بالخادم البعيد ، المصادقة القائمة على كلمة المرور (عرضة لهجمات القوة الغاشمة) والمصادقة القائمة على مفاتيح SSH (وهي آمنة للغاية).

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

في هذا الدليل ، سنرى كيفية إعداد مفاتيح SSH على خادم Ubuntu 20.04 LTS.

تحقق مما إذا كان لديك أي مفتاح SSH موجود على جهاز الكمبيوتر الخاص بك

للتحقق مما إذا كان SSH Keypair موجودًا بالفعل على جهاز الكمبيوتر الخاص بك ، اكتب هذا الأمر في الجهاز الطرفي.

ls -l ~/.ssh/id_*.pub

إذا عاد الأمر أعلاه no such file or directoryأو no matches found، فهذا يعني أن زوج مفاتيح SSH غير موجود.

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

إنشاء مفاتيح SSH على جهاز كمبيوتر عميل

لإنشاء زوج مفاتيح SSH جديد على جهاز الكمبيوتر الخاص بك ، اكتب الأمر كما هو موضح أدناه.

ssh-keygen

بشكل افتراضي ، تكون مفاتيح SSH من 2048 بت. للحصول على أمان أفضل ، إذا كنت تريد إنشاء مفاتيح SSH ذات وحدات بت أعلى ، فاستخدم الأمر التالي.

ssh-keygen -b 4096

إذا تم تشغيل الأمر بنجاح ، فستظهر الرسالة التالية على شاشتك.

توليد زوج مفاتيح rsa عام / خاص.
أدخل الملف الذي تريد حفظ المفتاح فيه (/ home/harshit/.ssh/id_rsa):

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

أدخل الملف الذي تريد حفظ المفتاح فيه (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

استبدل الاسم الموجود xxxفي نهاية اسم الملف باسم مناسب ، كما هو موضح أدناه واضغط على Enter.

أدخل الملف الذي تريد حفظ المفتاح فيه (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

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

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

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

بمجرد اكتمال العملية برمتها ، تظهر الرسالة التالية على شاشتك.

كيفية إضافة مفاتيح SSH على أوبونتو 20.04

تم إنشاء مفاتيح SSH على نظامك. حان الوقت الآن لنسخ المفتاح العام على الخادم البعيد.

نسخ المفتاح العام إلى خادم Ubuntu البعيد

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

استخدام الأداة المساعدة ssh-copy-id

تتوفر ssh-copy-idالأداة بشكل افتراضي على جهاز Ubuntu الذي ينسخ المفتاح العام من جهازك إلى الدليل المناسب لجهاز Ubuntu البعيد.

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

ssh-copy-id [email protected]

استبدال usernameو hostnameفي الأمر أعلاه مع اسم المستخدم واسم المضيف الملقم الخاص بك.

ستظهر الرسالة التالية على جهازك الطرفي إذا كنت تتصل بالمضيف لأول مرة ، اكتب yesواضغط Enter.

لا يمكن إثبات أصالة المضيف "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-copy-idستقوم الأداة الآن بالبحث عن الملف بالاسم id_rsa.pubالذي يحتوي على مفتاح SSH العام. بمجرد اكتمال عملية المسح ، سيطالبك بإدخال كلمة مرور الخادم البعيد ، كما هو موضح أدناه. اكتب كلمة المرور واضغط Enter.

/ usr / bin / ssh-copy-id: INFO: محاولة تسجيل الدخول باستخدام المفتاح (المفاتيح) الجديدة ، لتصفية أي منها تم تثبيته بالفعل
/ usr / bin / ssh-copy-id: INFO: لا يزال هناك مفتاح واحد (مفاتيح) للتثبيت - إذا طُلب منك الآن تثبيت المفاتيح الجديدة
كلمة مرور [البريد الإلكتروني المحمي] :

بمجرد إضافة المفتاح ، ستظهر الرسالة التالية على جهازك كمخرج.

عدد المفاتيح المضافة: 1
حاول الآن تسجيل الدخول إلى الجهاز ، باستخدام: "ssh ' [email protected] " وتحقق للتأكد من أنه تمت إضافة المفتاح (المفاتيح) الذي تريده فقط.

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

ssh-copy-id -i id_rsa_xxx.pub [email protected]

💡 نصيحة

لا تنس أن تضع .pub في نهاية اسم الملف أثناء الكتابة في الجهاز.

نسخ المفتاح العام بطريقة الأنابيب

اكتب الأمر التالي في المحطة إذا ssh-copy-idلم تكن الأداة المساعدة متوفرة. قد يبدو هذا الأمر أطول قليلاً ولكنه يعمل بشكل مناسب.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

استبدال remote_usernameو server_ip_addressمع اسم المستخدم وعنوان IP.

إذا كان لديك عدة مفاتيح SSH متوفرة على جهاز الكمبيوتر الخاص بك ، id_rsa.pubفاستبدلها بملف مفتاح SSH العام الذي تختاره. على سبيل المثال ، id_rsa_client_1.pub.

اكتب كلمة مرور المستخدم البعيد عندما يُطلب منك ذلك واضغط Enter.

[email protected]'s password:

بمجرد كتابة كلمة المرور ، id_rsa.pubسيتم نسخ authorized_keysالملف إلى ملف الخادم البعيد.

نسخ المفتاح العمومي يدويًا

استخدم هذه الطريقة عندما لا يكون لديك وصول إلى نظامك البعيد من خلال مصادقة كلمة المرور.

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

cat ~/.ssh/id_rsa.pub

سيبدو محتوى الملف كما هو موضح أدناه.

سه-آر إس إيه AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [البريد الإلكتروني محمي] _PC

الآن ، قم بتسجيل الدخول إلى الخادم البعيد الخاص بك والصق المحتوى المنسوخ باستخدام الأمر الموضح أدناه. استبدل ال above_stringبالمحتوى المنسوخ.

echo above_string >> ~/.ssh/authorized_keys

تكوين مفاتيح SSH متعددة (اختياري)

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

لإدارة عدة مفاتيح SSH ، سننشئ الآن configملفًا داخل .sshالدليل باستخدام الأمر الموضح أدناه.

cd ~/.ssh
vim config

اكتب iللدخول إلى وضع الأوامر واكتب تفاصيل عدة مضيفين ، كما هو موضح في المثال التالي:

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

وبالمثل ، اكتب تفاصيل الخوادم البعيدة الأخرى ومفاتيحها. بمجرد اكتمال العملية Esc، اضغط :wqعلى للحفظ والخروج.

الآن العمليات اللاحقة هي نفسها لكل من وجود مفاتيح SSH مفردة أو متعددة على جهاز الكمبيوتر العميل.

قم بتسجيل الدخول إلى الخادم البعيد الخاص بك باستخدام مفاتيح SSH

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

ssh [email protected]_ip_address

إذا قدمت عبارة المرور أثناء إنشاء زوج المفاتيح ، فسيُطلب منك إدخالها. سيتم فتح جلسة جديدة بعد اكتمال عملية المصادقة.

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

لذا سنقوم الآن بتعطيل آلية تسجيل الدخول المعتمدة على كلمة المرور تمامًا من خادمنا البعيد.

تعطيل آلية تسجيل الدخول المستندة إلى كلمة المرور

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

قم بتسجيل الدخول إلى خادم Ubuntu البعيد الخاص بك واكتب الأمر الموضح أدناه.

sudo vim /etc/ssh/sshd_config
  • اضغط على Esc، /واكتب "PasswordAuthentication" واضغط على enter
  • اضغط الآن iوقم بتغيير قيمة "PasswordAuthentication yes" إلى "PasswordAuthentication no".
  • اضغط Escعلى العملية المذكورة أعلاه وكررها للعثور على "ChallengeResponseAuthentication" و "UsePAM" وتغيير قيمها إلى noأيضًا.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

مرة واحدة يتم تعيين كافة القيم إلى no، اضغط Esc، نوع :wqوضرب enter.

لتنشيط جميع التغييرات ، أعد تشغيل sshالخدمة باستخدام الأمر أدناه.

sudo systemctl restart ssh

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

بمجرد اكتمال عملية التحقق ، أغلق جميع الجلسات الجارية.

لقد نجحنا الآن في تكوين المصادقة المستندة إلى مفتاح SSH على خادم Ubuntu 20.04 الخاص بنا. الآن لا يمكن لأي شخص تسجيل الدخول إلى الخادم الخاص بك باستخدام آلية تسجيل الدخول القائمة على كلمة المرور. 


كيفية تعطيل Ubuntu Dock على Ubuntu 20.04

كيفية تعطيل Ubuntu Dock على Ubuntu 20.04

أحيانًا يكون من الأفضل مغادرة الرصيف والإبحار بعيدًا!

كيفية استخدام CD Command في Linux

كيفية استخدام CD Command في Linux

طريقة سهلة لتغيير الدلائل في Linux من المحطة

كيفية إضافة مفاتيح SSH على أوبونتو 20.04

كيفية إضافة مفاتيح SSH على أوبونتو 20.04

تشرح لك هذه المقالة عملية إضافة مصادقة مفاتيح SSH على خادم Ubuntu 20.04 وتعطيل المصادقة المستندة إلى كلمة المرور.

كيفية تحديث Firefox من Terminal على أجهزة كمبيوتر Ubuntu Linux

كيفية تحديث Firefox من Terminal على أجهزة كمبيوتر Ubuntu Linux

تعرف على كيفية تحديث Firefox من Terminal على كمبيوتر Ubuntu Linux

كيفية تمكين SSH على Ubuntu 20.04

كيفية تمكين SSH على Ubuntu 20.04

الوصول بأمان إلى جهاز Ubuntu الخاص بك من أي مكان

كيفية التحقق مما إذا كان الملف أو الدليل موجودًا في برنامج Bash Shell

كيفية التحقق مما إذا كان الملف أو الدليل موجودًا في برنامج Bash Shell

التحقق من وجود ملف أو دليل من نص برمجي Bash

كيفية تثبيت Google Chrome على Ubuntu 20.04

كيفية تثبيت Google Chrome على Ubuntu 20.04

دليل سريع لتثبيت Google Chrome من سطر الأوامر على Ubuntu 20.04

كيفية إجراء اختبارات السرعة من سطر أوامر Linux باستخدام Speedtest-cli

كيفية إجراء اختبارات السرعة من سطر أوامر Linux باستخدام Speedtest-cli

Speedtest.net هي خدمة لاختبار سرعة اتصالك بالإنترنت. يستخدم خادم speedtest.net قريب للتنزيل

كيفية إنشاء مستخدم Sudo على Ubuntu 20.04 LTS

كيفية إنشاء مستخدم Sudo على Ubuntu 20.04 LTS

امنح امتيازات الجذر لأي مستخدم لديه sudo على Ubuntu 20.04 LTS

كيفية تحديث NodeJS إلى أحدث إصدار في أوبونتو

كيفية تحديث NodeJS إلى أحدث إصدار في أوبونتو

تحديث NodeJS باستخدام APT و NVM.