كيفية تمكين SSH على Ubuntu 20.04
الوصول بأمان إلى جهاز Ubuntu الخاص بك من أي مكان
قم بإعداد تسجيل دخول آمن بدون كلمة مرور إلى خادم 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 على نظامك. حان الوقت الآن لنسخ المفتاح العام على الخادم البعيد.
نسخ المفتاح العام إلى خادم 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 الخاص بك من أي مكان
أصبح الأمان المشدد عبر الإنترنت إلزاميًا للكثير منا ، ومع ازدياد ذكاء المشغلين الخبيثين ، يجب أن تصبح الأدوات والحماية أقوى لمواكبة ذلك. Secure Shell (SSH) هو بروتوكول تشفير يسمح لك بإرسال البيانات بأمان عن طريق إقران مفتاح عام بمطابقة خاصة.
أحيانًا يكون من الأفضل مغادرة الرصيف والإبحار بعيدًا!
طريقة سهلة لتغيير الدلائل في Linux من المحطة
تشرح لك هذه المقالة عملية إضافة مصادقة مفاتيح SSH على خادم Ubuntu 20.04 وتعطيل المصادقة المستندة إلى كلمة المرور.
تعرف على كيفية تحديث Firefox من Terminal على كمبيوتر Ubuntu Linux
الوصول بأمان إلى جهاز Ubuntu الخاص بك من أي مكان
التحقق من وجود ملف أو دليل من نص برمجي Bash
دليل سريع لتثبيت Google Chrome من سطر الأوامر على Ubuntu 20.04
Speedtest.net هي خدمة لاختبار سرعة اتصالك بالإنترنت. يستخدم خادم speedtest.net قريب للتنزيل
امنح امتيازات الجذر لأي مستخدم لديه sudo على Ubuntu 20.04 LTS
تحديث NodeJS باستخدام APT و NVM.