تسمح تقنية SSH (Secure Shell) بالتحكم الآمن عن بعد بجهاز الكمبيوتر من خلال اتصال آمن. يقوم SSH بتشفير جميع الملفات المنقولة ، بما في ذلك كلمات المرور ، وينقل أيضًا أي بروتوكول شبكة. لكي تعمل الأداة بشكل صحيح ، من الضروري ليس فقط تثبيتها ، ولكن أيضًا لتهيئتها. نود التحدث عن منتج التكوين الرئيسي في هذه المقالة ، مع الأخذ على سبيل المثال أحدث إصدار من نظام التشغيل Ubuntu والذي سيكون عليه الخادم.
محتوى
إذا لم تكن قد أكملت التثبيت على الخادم وأجهزة الكمبيوتر العميلة ، فيجب عليك القيام بذلك مبدئيًا ، لأن الإجراء بالكامل بسيط للغاية ولا يستغرق وقتًا طويلاً. للحصول على إرشادات مفصلة حول هذا الموضوع ، راجع مقالتنا الأخرى على الرابط التالي. كما يوضح الإجراء الخاص بتحرير ملف التكوين واختبار SSH ، لذلك سنناقش اليوم مهام أخرى.
مزيد من التفاصيل: تثبيت خادم SSH في أوبونتو
لا يحتوي SSH المثبت حديثًا على المفاتيح المحددة للاتصال من الخادم إلى العميل والعكس. يجب تعيين كل هذه المعلمات يدويًا فور إضافة جميع مكونات البروتوكول. يعمل الزوج الرئيسي باستخدام خوارزمية RSA (اختصار لأسماء مطوري Rivest و Shamir و Adleman). بفضل نظام التشفير هذا ، يتم تشفير المفاتيح الخاصة باستخدام خوارزميات خاصة. لإنشاء زوج من المفاتيح العامة ، ما عليك سوى إدخال الأوامر المناسبة في وحدة التحكم واتباع الإرشادات التي تظهر.
ssh-keygen
، ثم اضغط على مفتاح Enter . يوجد الآن زوج مفاتيح تم إنشاؤه - سري وعام ، وسيتم استخدامه لمزيد من الاتصال بين أجهزة الكمبيوتر. تحتاج فقط إلى وضع المفتاح على الخادم حتى تنجح مصادقة SSH.
هناك ثلاث طرق لنسخ المفاتيح. سيكون كل منها هو الأمثل في المواقف المختلفة حيث ، على سبيل المثال ، لا تعمل إحدى الطرق أو غير مناسبة لمستخدم معين. نقترح دراسة الخيارات الثلاثة جميعًا ، بدءًا من الخيارات الأكثر بسيطة وفعالية.
الخيار 1: الأمر ssh-copy-id
يتم ssh-copy-id
الأمر ssh-copy-id
في نظام التشغيل ، لذلك لا تحتاج إلى تثبيت مكونات إضافية لتشغيله. اتبع بناء الجملة البسيط لنسخ المفتاح. في "المحطة الطرفية" ، يجب إدخال ssh-copy-id username@remote_host
، حيث يكون username @ remote_host هو اسم الكمبيوتر البعيد.
عند الاتصال لأول مرة ، ستتلقى رسالة إعلام:
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
يجب عليك تحديد خيار نعم لمواصلة الاتصال. بعد ذلك ، ستبحث الأداة بشكل مستقل عن المفتاح في شكل الملف id_rsa.pub
، والذي تم إنشاؤه مسبقًا. الكشف الناجح سيعرض النتيجة التالية:
/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 ، ثم تظهر الرسالة على الشاشة:
Number of key(s) added: 1
حاول الآن تسجيل الدخول إلى الجهاز باستخدام: "ssh '[email protected]'"
التحقق من ذلك.
يعني ظهور هذا النص أنه تم تنزيل المفتاح بنجاح إلى الكمبيوتر البعيد ، ولن تكون هناك مشكلات في الاتصال.
الخيار 2: نسخ المفتاح العمومي عبر SSH
إذا كنت غير قادر على استخدام الأداة المساعدة المذكورة أعلاه ، ولكن لديك كلمة مرور لتسجيل الدخول إلى خادم SSH البعيد ، يمكنك تحميل مفتاح المستخدم يدويًا ، وبالتالي ضمان مزيد من المصادقة المستقرة عند الاتصال. تُستخدم في مجموعة الأوامر هذه ، التي تقرأ البيانات من الملف ، ثم يتم إرسالها إلى الخادم. في وحدة التحكم ، ستحتاج إلى إدخال السطر
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_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"
.
عندما تظهر رسالة
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
متابعة الاتصال وإدخال كلمة المرور لتسجيل الدخول إلى الخادم. بعد ذلك ، سيتم نسخ المفتاح العمومي تلقائيًا إلى نهاية ملف التكوين الخاص بـ Author_keys.
الخيار 3: نسخ المفتاح العمومي يدويًا
إذا لم يكن هناك وصول إلى جهاز كمبيوتر عن بعد عبر خادم SSH ، يتم تنفيذ جميع الخطوات المذكورة أعلاه يدويًا. للقيام بذلك ، تعرّف أولاً على المفتاح الموجود على الكمبيوتر الشخصي الخاص بالخادم عبر أداة القيادة cat ~/.ssh/id_rsa.pub
.
على الشاشة ، سيتم عرض السطر التالي: ssh-rsa + ключ в виде набора символов== demo@test
. بعد ذلك انتقل إلى العمل على الجهاز البعيد ، حيث أنشئ دليلًا جديدًا من خلال mkdir -p ~/.ssh
. بالإضافة إلى ذلك ، يقوم بإنشاء ملف authorized_keys
. بعد ذلك ، أدخل المفتاح الذي تعلمته سابقًا من خلال echo + строка публичного ключа >> ~/.ssh/authorized_keys
. بعد ذلك ، يمكنك محاولة المصادقة مع الخادم دون استخدام كلمات المرور.
في القسم السابق ، تعرفت على الطرق الثلاث لنسخ مفتاح كمبيوتر بعيد إلى خادم. تسمح لك هذه الإجراءات بالاتصال دون استخدام كلمة مرور. يتم تنفيذ هذا الإجراء عبر سطر الأوامر عن طريق كتابة shh ssh username@remote_host
، حيث username @ remote_host هو اسم المستخدم والمضيف للكمبيوتر المطلوب. عند الاتصال لأول مرة ، سيتم إعلامك باتصال غير مألوف ويمكنك المتابعة عن طريق تحديد خيار نعم .
سيحدث الاتصال تلقائيًا إذا لم يتم تحديد عبارة مرور أثناء إنشاء زوج المفاتيح. خلاف ذلك ، يجب عليك أولاً إدخاله لمتابعة العمل مع SSH.
يعتبر الإعداد الناجح لنسخ المفاتيح في الحالة التي يمكنك فيها الدخول إلى الخادم دون استخدام كلمة مرور. ومع ذلك ، تتيح القدرة على المصادقة بهذه الطريقة للمهاجمين استخدام الأدوات للعثور على كلمة مرور واقتحام اتصال آمن. ستتيح حماية نفسك من مثل هذه الحالات تعطيل كلمة مرور تسجيل الدخول بالكامل في ملف تكوين SSH. هذا سوف يتطلب:
sudo gedit /etc/ssh/sshd_config
. sudo systemctl restart ssh
خادم sudo systemctl restart ssh
. سيتم تعطيل مصادقة كلمة المرور ، وستكون قادرًا على تسجيل الدخول إلى الخادم فقط باستخدام مفاتيح تم إنشاؤها خصيصًا لهذا الغرض باستخدام خوارزمية RSA.
في Ubuntu ، يكون جدار الحماية الافتراضي هو جدار الحماية غير المعقد (UFW). يسمح لك بالسماح بالاتصالات للخدمات المحددة. ينشئ كل تطبيق ملف التعريف الخاص به في هذه الأداة ، وتقوم UFW بإدارتها من خلال السماح بالاتصالات أو رفضها. فيما يلي تكوين ملف تعريف SSH عن طريق إضافته إلى القائمة:
sudo ufw app list
. sudo ufw allow OpenSSH
. sudo ufw enable
. sudo ufw status
، وبعد ذلك سترى حالة الشبكة. هذا يكمل تعليمات التكوين SSH لدينا لأوبونتو. يتم إجراء المزيد من التكوين لملف التكوين والمعلمات الأخرى شخصيًا بواسطة كل مستخدم بموجب طلباته. يمكنك التعرف على تشغيل جميع مكونات SSH في الوثائق الرسمية للبروتوكول.