كيفية تثبيت مفاتيح SSH على Ubuntu 20.04
كيفية تثبيت مفاتيح SSH على Ubuntu 20.04

كيفية تثبيت مفاتيح SSH على Ubuntu 20.04

0 الأسهم
0
0
0
0

كيفية تثبيت مفاتيح SSH على Ubuntu 20.04

مقدمة

SSH، أو Secure Shell، هو بروتوكول مشفّر يُستخدم لإدارة الخوادم والتواصل معها. عند العمل على خادم أوبونتو، من المرجح أن تقضي معظم وقتك في جلسة طرفية متصلة بخادمك عبر SSH. تابعونا لمعرفة كيفية تثبيت مفاتيح SSH على أوبونتو 20.04.

في هذا يساعدفي هذه المقالة، سنركز على إعداد مفاتيح SSH لتثبيت Ubuntu 20.04. تُوفر مفاتيح SSH طريقة آمنة لتسجيل الدخول إلى خادمك، وهي مُوصى بها لجميع المستخدمين.

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

الخطوة 1 - إنشاء زوج مفاتيح

الخطوة الأولى هي إنشاء زوج مفاتيح على جهاز العميل (عادةً جهاز الكمبيوتر الخاص بك):

$ ssh-keygen

بشكل افتراضي، تقوم الإصدارات الحديثة من ssh-keygen بإنشاء زوج مفاتيح RSA بطول 3072 بت، وهو آمن بدرجة كافية لمعظم الأغراض (يمكنك بشكل اختياري تمرير العلم -b 4096 لإنشاء مفتاح أكبر بطول 4096 بت).

بعد إدخال الأمر، يجب أن ترى الناتج التالي:

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

اضغط على Enter لحفظ زوج المفاتيح في الدليل الفرعي /ssh. من دليل منزلك، أو حدد مسارًا بديلاً.

إذا قمت بإنشاء زوج مفاتيح SSH مسبقًا، فقد ترى المطالبة التالية:

Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

إذا اخترتَ استبدال مفتاح القرص، فلن تتمكن من المصادقة باستخدام المفتاح السابق. توخَّ الحذر الشديد عند اختيار (نعم)، فهذه عملية مُدمِّرة لا يُمكن التراجع عنها.

يجب أن ترى بعد ذلك الإشعار التالي:

Output
Enter passphrase (empty for no passphrase):

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

يجب أن ترى بعد ذلك إخراجًا مشابهًا لما يلي:

OutputYour identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---[RSA 3072]----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----[SHA256]-----+

لديك الآن مفتاحان عام وخاص يمكنك استخدامهما للمصادقة. الخطوة التالية هي وضع المفتاح العام على خادمك لتتمكن من استخدام مصادقة SSH لتسجيل الدخول.

الخطوة 2 - نسخ المفتاح العام إلى خادم Ubuntu

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

نسخ المفتاح العام باستخدام ssh-copy-id

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

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

مثله:

$ ssh-copy-id username@remote_host

قد ترى الرسالة التالية:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

هذا يعني أن جهاز الكمبيوتر المحلي لديك لا يتعرف على المضيف البعيد. هذه هي المرة الأولى التي تتصل فيها بمضيف جديد. اكتب "نعم" واضغط على ENTER للمتابعة.

بعد ذلك، ستبحث الأداة في حسابك المحلي عن مفتاح id_rsa.pub الذي أنشأناه سابقًا. عند العثور عليه، ستطلب منك إدخال كلمة مرور الحساب البعيد:

Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

أدخل كلمة المرور (لن تظهر كتابتك لأسباب أمنية) ثم اضغط على زر الإدخال. ستتصل الأداة بالحساب على المضيف البعيد باستخدام كلمة المرور التي أدخلتها. ثم ستنسخ محتويات مفتاح ssh/id_rsa.pub./~ الخاص بك إلى ملف في الدليل الرئيسي ssh./~ للحساب البعيد يُسمى author_keys.

يجب أن ترى الناتج التالي:

Output
Number of key(s) added: 1

Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

في هذه المرحلة، تم تحميل مفتاح id_rsa.pub الخاص بك إلى الحساب البعيد. يمكنك الانتقال إلى الخطوة 3.

نسخ المفتاح العام باستخدام SSH

إذا لم يتوفر لديك ssh-copy-id، ولكن لديك وصول SSH يعتمد على كلمة المرور إلى حساب على الخادم الخاص بك، فيمكنك تحميل مفاتيحك باستخدام طريقة SSH العادية.

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

بدلاً من ذلك، يمكننا التأكد من أن الدليل ssh./~ موجود ويتمتع بالأذونات الصحيحة للحساب الذي نستخدمه.

يمكننا بعد ذلك إخراج المحتوى الذي أدخلناه إلى ملف يُسمى author_keys في هذا المجلد. سنستخدم رمز إعادة التوجيه << لإضافة المحتوى بدلاً من الكتابة فوقه. هذا يسمح لنا بإضافة مفاتيح دون إتلاف المفاتيح المضافة سابقًا.

الأمر الكامل هو كما يلي:

$ cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

قد ترى الرسالة التالية:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

هذا يعني أن جهاز الكمبيوتر المحلي لديك لا يتعرف على المضيف البعيد. هذه هي المرة الأولى التي تتصل فيها بمضيف جديد. اكتب "نعم" واضغط على ENTER للمتابعة.

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

Output
[email protected]'s password:

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

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

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

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

لعرض محتويات مفتاح id_rsa.pub، اكتب ما يلي على جهاز الكمبيوتر المحلي الخاص بك:

# cat ~/.ssh/id_rsa.pub

ستشاهد محتويات المفتاح، والتي يجب أن تبدو كالتالي:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

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

بمجرد وصولك إلى حسابك على الخادم البعيد، تأكد من وجود مجلد ssh./~. سيؤدي هذا الأمر إلى إنشاء المجلد إذا لزم الأمر، أو عدم تنفيذ أي إجراء إذا كان موجودًا بالفعل:

$ mkdir -p ~/.ssh

يمكنك الآن إنشاء أو تعديل ملف author_keys في هذا المجلد. يمكنك إضافة محتويات ملف id_rsa.pub إلى نهاية ملف author_keys وإنشائه إذا لزم الأمر باستخدام هذا الأمر:

$ echo public_key_string >> ~/.ssh/authorized_keys

في الأمر أعلاه، استبدل public_key_string بمخرجات أمر cat ~/.ssh/id_rsa.pub الذي شغّلته على نظامك المحلي. يجب أن يبدأ بـ ssh-rsa AAAA….

أخيرًا، سنتأكد من أن الدليل ssh./~ وملف author_keys لديهما الأذونات المناسبة:

$ chmod -R go= ~/.ssh

يؤدي هذا إلى إزالة جميع أذونات "المجموعة" و"الأخرى" بشكل متكرر لدليل /ssh./~.

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

chown -R sammy:sammy ~/.ssh

في هذا البرنامج التعليمي، اسم المستخدم لدينا هو sammy، ولكن يجب عليك استبدال اسم المستخدم المناسب في الأمر أعلاه.

الآن يمكننا إجراء مصادقة بدون كلمة مرور باستخدام Ubuntu Server.

الخطوة 3 - المصادقة على خادم Ubuntu باستخدام مفاتيح SSH

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

العملية الأساسية هي نفسها:

$ ssh username@remote_host

إذا كانت هذه هي المرة الأولى التي تتصل فيها بهذه المضيفات (إذا كنت تستخدم الطريقة الأخيرة أعلاه)، فقد ترى شيئًا كهذا:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

هذا يعني أن جهاز الكمبيوتر المحلي لديك لا يتعرف على المضيف البعيد. اكتب "نعم" ثم اضغط على ENTER للمتابعة.

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

إذا نجح المصادقة القائمة على المفتاح، فتابع التعلم حول كيفية تأمين نظامك بشكل أكبر عن طريق تعطيل مصادقة كلمة المرور.

الخطوة 4 - تعطيل مصادقة كلمة المرور على الخادم الخاص بك

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

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

بعد التأكد من أن حسابك البعيد يتمتع بصلاحيات إدارية، سجّل الدخول إلى خادمك البعيد باستخدام مفاتيح SSH، إما بحساب الجذر أو بحساب يتمتع بصلاحيات sudo. ثم افتح ملف تكوين SSH Daemon:

$ sudo nano /etc/ssh/sshd_config

داخل الملف، ابحث عن تعليمة تُسمى PasswordAuthentication. يُمكن تعليق هذا السطر بـ # في بدايته. ألغِ التعليق بإزالة # وتعيين القيمة إلى لا. سيؤدي هذا إلى تعطيل إمكانية تسجيل الدخول عبر SSH باستخدام كلمات مرور الحساب:

/etc/ssh/sshd_config


. . .
PasswordAuthentication no
. . .

بعد الانتهاء، احفظ الملف وأغلقه بالضغط على CTRL+X، ثم Y لتأكيد الحفظ، وأخيرًا ENTER للخروج من nano. لتفعيل هذه التغييرات، نحتاج إلى إعادة تشغيل خدمة sshd:

$ sudo systemctl restart ssh

كإجراء احترازي، افتح نافذة طرفية جديدة واختبر ما إذا كانت خدمة SSH تعمل بشكل صحيح قبل إغلاق الجلسة الحالية:

# ssh username@remote_host

بمجرد التأكد من أن خدمة SSH تعمل بشكل صحيح، يمكنك إغلاق جميع جلسات الخادم الحالية بأمان.

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

نتيجة

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً

مساحة سحابية

ما هي مساحة التخزين السحابي، وما هي أفضل مساحة تخزين سحابي لعام ٢٠٢٠؟ مع تزايد استخدام مساحة التخزين السحابي، في هذا...