إعداد خادم ssh لإعداد أوبونتو. منفذ SSH قياسي

26.06.2019

ستكون هذه سلسلة من المقالات حول تثبيت وتكوين خادم بسيط لفريق تطوير الويب. سيحتوي الخادم على Git و FTP و SSH و Apache 2 و PHP 5.4 و MySQL و cron والنطاقات الفرعية و memcached و Composer. ستنطبق المقالات على Ubuntu 14.04. أعتقد أنه سيتم استخدام الخادم لأغراض الشركات وليس للمشاريع النهائية. على الرغم من أنه إذا كان من المسموح أن يكون المشروع على خادم dev ، فلماذا لا ...

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

من المفترض أن Ubuntu 14.04 مثبت بالفعل على الخادم (على VPS / VDS ، على سبيل المثال) وهناك وصول إلى وحدة تحكم الجذر.

  1. المستخدمون و SSH

هيا بنا نبدأ.

مستخدمو الخادم

أولاً ، قائمة مختصرة من الأوامر للعمل مع المستخدمين.

إضافة مستخدم جديد

adduser اسم المستخدم

مسح المستخدم

userdel -r اسم المستخدم

تغيير كلمة المرور

passwd اسم المستخدم

تسجيل الدخول كمستخدم

سو اسم المستخدم

العودة إلى الجذر:

تغيير الدليل الرئيسي

usermod -d دليل_مطلوب اسم المستخدم

تعيين المالك والمجموعة للدليل (وجميع محتوياته)

تشاون- R اسم المستخدم:دليل اسم المجموعة

حدد المستخدمين

  • mygit - لتوضيح كيفية العمل مع مستودعات Git ؛
  • myftp - لتوضيح كيفية العمل مع FTP ؛
  • myssh - لشرح كيفية العمل مع SSH.

إذا كانت myssh واضحة ، إذن ، للوهلة الأولى ، وصول SSH إلى mygit وحتى أكثر من ذلك ، ليست هناك حاجة إلى myftp. يمكنك رفض الوصول إلى SSH لمستخدمين محددين (أو السماح لمستخدمين معينين فقط) في / etc / ssh / sshd_config، لكن mygit يستخدم SSH لترخيص Git. لذلك ، سيتم النظر في طريقة أخرى أدناه ، والتي لا تتطلب إعادة تشغيل SSH ، ومن ناحية ، لا تسمح بالوصول إلى وحدة التحكم عبر SSH mygit ، ولكن من ناحية أخرى ، تسمح باستخدام SSH للعمل مع Git.

SSH

تمرين

يتم تثبيت عميل وخادم OpenSSH باستخدام الأمر:

apt-get install ssh

ترتيب

باستخدام محرر mcedit (أو nano ، في حالة mcedit ، تحتاج إلى تثبيت mc أولاً) ، افتح الملف / etc / ssh / sshd_config:

Mcedit / etc / ssh / sshd_config

تأكد من أن الإعداد التالي يحتوي على القيمة المحددة:

PermitEmptyPasswords لا

هنا يمكنك تحديد منفذ مختلف لـ SSH ، ولكن في هذه الحالة ، في المرة التالية التي يتصل فيها العملاء ، يجب أن يبدو أمر الاتصال كما يلي:

ssh -p الميناءتسجيل الدخول @ الخادم

يمكنك إعادة تشغيل خادم SSH بالأمر:

إعادة تشغيل خدمة ssh

العملاء

يجب على المستخدمين الذين سيتصلون بالخادم عبر SSH أو Git (عبر SSH) تثبيت عميل SSH وإنشاء المفاتيح. يمكنك التحقق مما إذا كان المفتاح قد تم إنشاؤه من خلال وجود الملف ~ / .ssh / id_rsa.pub. إذا لم يكن الأمر كذلك ، فأنت بحاجة إلى إنشائه ، على سبيل المثال ، باستخدام الأمر التالي:

ssh-keygen -t rsa -C " [بريد إلكتروني محمي]الخادم"

لا يمكن تعيين كلمة المرور.

ثم أضف المفتاح إلى ssh-agent:

ssh-add ~ / .ssh / id_rsa

مفتاح الإذن

من أجل عدم إدخال كلمة مرور في كل مرة تتصل فيها بـ SSH و Git (ستعمل أيضًا معنا عبر SSH) ، فأنت بحاجة إلى إنشاء ملف ~ / .ssh / author_keysهؤلاء المستخدمين على الخادمالتي سيتم إجراء الاتصالات.

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

في هذا الملف ، يجب أن يحتوي كل سطر على محتويات المفتاح العام ( ~ / .ssh / id_rsa.pub) من عملاء هذا المستخدم. يجب أن يكون هناك سطر فارغ في نهاية ملف Author_keys.

بمعنى آخر ، إذا كان لدينا server_user_1 سيتم الوصول إليه عبر ssh بواسطة العملاء client_user_1 و client_user_2 ، ففي الدليل الرئيسي للمستخدم server_user_1 ، يجب أن يحتوي الملف ~ / .ssh / author_keys على ثلاثة أسطر:

محتوى id_rsa.pub client_user_1 محتوى id_rsa.pub client_user_2 (سلسلة فارغة)

شكرا مادكوكس

مثال ملف التكوين

# عنوان تفسيري: #
# يقصد بـ "افتراضي" سلوك sshd عندما #
# لتوجيه غير محدد. من الجدير بالذكر أنه في أوبونتو #
# يحتوي ملف sshd_config بالفعل على عدد من الإعدادات التي #
# هي الإعدادات الافتراضية خصيصًا لـ Ubuntu. #
# يتم تحديد هذه الإعدادات في هذا الملف. #
# #

إعدادات العنوان / المنفذ ، إلخ. #

# #
ميناء
# #
# المنفذ المطلوب استخدامه. يمكنك تحديد عدة ، على سبيل المثال: #
# المنفذ 22 #
# المنفذ 23 #
# المنفذ 24 #
# يوصى باستخدام منفذ غير قياسي ، لأن #
غالبًا ما يتم فحص # قياسي بواسطة برامج الروبوت لـ #
# "ثقوب" محتملة. يمكن حذفها إذا تم إعطاء #
# عبر العنوان. راجع أيضًا معلمة ListenAddress. #
# #
المنفذ 8022
# #
عنوان الاستماع #
# #
# عنوان الشبكة الذي "يستمع" الخادم عليه. يمكن أن يكون العنوان #
# اكتب مثل هذا: #
# ListenAddress host | IPv4_addr | IPv6_addr #
# استمع عنوان المضيف | IPv4_addr: المنفذ #
# عنوان الاستماع: المنفذ #
# إذا لم يتم تعيين المنفذ ، سيستمع sshd على هذا العنوان و #
# على المنفذ المحدد في خيار المنفذ. إذا كنت ستصبح #
# استخدم ListenAddress بدون تحديد منفذ ثم الخيار #
# يجب أن يسبق المنفذ خيار ListenAddress. ان لم #
# حدد ، ثم يستمع إلى جميع السكان المحليين افتراضيًا #
# عناوين. يمكنك تحديد عناوين متعددة. #
# #
العنوان
# #
# يحدد أي عائلة عناوين IP يجب أن تكون #
# مستعمل sshd. الخيارات الممكنة: #
# "أي" أي #
# "إنت" (IPv4 فقط) #
# "inet6" (IPv6 فقط) #
# الافتراضي هو "أي". #
العنوان
# #
UseDNS
# #
# يحدد ما إذا كان يجب على sshd التحقق من اسم المضيف و #
# استخدم هذا الاسم للتحقق من عنوان IP الذي قدمه العميل مقابل #
# وردت من DNS. #

# #

# إعدادات وصول المستخدم

# #
# دعونا / لا ندع المستخدم يتم تحديده من خلال التوجيهات #
# DenyUsers و AllowUsers و DenyGroups و AllowGroups. #
# في نفس الوقت ، ينتقل الشيك من أعلى إلى أسفل على طول السلسلة: #
# DenyUsers #
# || #
# AllowUsers #
# || #
# DenyGroups #
# || #
# AllowGroups #
# يتم قبول أسماء المستخدمين والمجموعات فقط ، رقم #
# معرفات (معرف المستخدم) لم يتم التعرف عليها. صحيح #
# تسجيل عدة مستخدمين / مجموعات بدورها ، عبر #
# الفراغ. إذا تمت كتابته كـ user @ host ، فسيكون #
يتم فحص # مستخدم ومضيف بشكل منفصل ، وهذا يسمح بـ #
# تقييد الوصول إلى مستخدمين معينين باستخدام #
# مضيفين محددين. ومن الجدير بالذكر أن التوجيهات #
# DenyUsers و AllowUsers تأخذ كمعامل #
# اسم المستخدم ، و DenyGroups و AllowGroups name #
# مجموعات. انظر الأنماط في man ssh_config للمزيد #
# معلومات حول أشكال كتابة أسماء المستخدمين والمجموعات. #
# #
رفض المستخدمين #
# #
# قائمة بالمستخدمين الذين يجب ألا يستخدمهم sshd. #
# الافتراضي غير محدد = لا أحد ممنوع. هؤلاء. إذا #
# تم تحديد مستخدم هنا ، سيتم رفض الوصول #
# إلى خادم ssh. #
# #
AllowUsers
# #
# قائمة المستخدمين الذين قد يستخدمهم sshd ، #

# تم تحديد مستخدم واحد على الأقل ، وصول ssh إلى الخادم #
# متاح فقط له. #
# #
DenyGroups
# #
# قائمة بالمجموعات التي يجب ألا تستخدمها sshd. #
# غير محدد افتراضيًا = لا توجد مجموعات محظورة. #
# بمعنى آخر. إذا تم تحديد مجموعة واحدة على الأقل ، فإن المستخدمين ، #
لن يُمنع أي عضو من هذه المجموعة من الوصول إلى ssh #
# الخادم. #
# #
AllowGroups #
# #
# قائمة بالمجموعات التي قد تستخدم sshd. #
# غير محدد افتراضيًا = مسموح للجميع. هؤلاء. إذا #
# تم تحديد مجموعة واحدة على الأقل ، ثم هؤلاء المستخدمون فقط #
# التي تحتوي عليها سيتم السماح لها بالوصول إلى خادم ssh.
# #

# خيارات حالة الاتصال #

# #
TCPKeepAlive
# #
# يشير إلى ما إذا كان يجب على النظام إرسال رسائل TCP إلى العميل #
# للحفاظ على الاتصال. إذا قمت بإرسال هذه الحزم ، #
# يمكنك تحديد انقطاع الاتصال. ومع ذلك ، هذا أيضًا #
# يعني أنه يمكن إنهاء الاتصال إذا #
# انقطاع مؤقت في التوجيه ، و #
# يجد بعض الناس هذا مزعجًا جدًا. من ناحية أخرى ، إذا كان #
# جلسات على الخادم لا يمكنها إرسال مثل هذه الرسائل #
# أخيرًا إلى أجل غير مسمى ، يتم إنتاج المستخدمين "الأشباح" ، #
# والتهام موارد الخادم. القيمة الافتراضية "نعم" ، #
# بمعنى آخر. إرسال مثل هذه الرسائل. لتعطيل الإرسال #
يجب تعيين # من هذه الرسائل على "لا". سابقا هذا #
# الخيار كان يسمى KeepAlive. من الجدير بالذكر أن #
# هناك طرق أكثر أمانًا للتحقق من الحالة #
# اتصالات (انظر أدناه). #
# #
TCPKeepAlive نعم
# #
ClientAliveCountMax #
# #
# يعين عدد الرسائل للعملاء التي sshd #
# يرسل على التوالي دون الحصول على أي رد من #
# عميل. إذا تم الوصول إلى العتبة و #
# العميل لم يستجب sshd قط سوف يفصل العميل عن طريق الإحباط #
# جلسة ssh. من الجدير بالذكر أن استخدام مثل هذا #
# رسائل تختلف اختلافًا جوهريًا عن توجيه TCPKeepAlive. #
يتم إرسال # رسائل من / إلى العملاء عبر # مشفرة
# قناة وبالتالي لم يتم انتحالها. نفس الرسائل #
تم انتحال # TCPKeepAlive. آلية العميل على قيد الحياة #
# ذات قيمة خاصة في الحالات التي يحتاج فيها الخادم والعميل إلى #
# تعرف متى أصبح الاتصال غير نشط. تقصير #
# القيمة هي 3. في حالة ClientAliveInterval #
# تم ضبطه على
5 وترك ClientAliveCountMax بمقدار #
# افتراضيًا ، سيتم قطع اتصال العملاء غير المستجيبين تقريبًا #
# بعد 45 ثانية. هذا التوجيه يعمل فقط مع #
# بروتوكول ssh2. #
# #
ClientAliveInterval #
# #
# يضبط الفاصل الزمني بالثواني. إذا كان ضمن #
# هذا الفاصل لم يكن هناك اتصال مع العميل ، sshd #
# يرسل رسالة عبر قناة مشفرة ، #
# طلب الرد من العميل. الافتراضي هو 0 ، أي #
# لا ترسل مثل هذه الرسائل. هذا التوجيه يعمل #
# فقط لبروتوكول ssh2. #
# #

خيارات المصادقة العامة

# #
مصدق KeysFile
# #
# يحدد الملف الذي يحتوي على المفاتيح العامة ، #
# تستخدم لمصادقة المستخدمين. التوجيه #
# قد تحتوي على علامات من النموذج٪ M ، والتي يتم استبدالها في #
# عملية إنشاء اتصال. #
# تم تحديد العلامات التالية: #




# وبالتالي ، يمكن تحديد ملف المفتاح كـ #
# المسار المطلق (أي ملف مشترك واحد مع مفاتيح) ، و #
# ديناميكيًا حسب المستخدم (أي وفقًا لـ #
# ملف لكل مستخدم). #
# الافتراضي هو ".ssh / author_keys". #
# مثال لملف مفتاح في المجلد الرئيسي للمستخدم: #
# AuthorizedKeysFile٪ h / .ssh / author_key #
# مثال لملف عام: #
# AuthorizedKeysFile / etc / ssh / author_keys #
# انظر وصف ملف author_keys لمزيد من #
# معلومة. #
# #
التحدي ، الاستجابة ، المصادقة #
# #
# يشير إلى ما إذا كان سيتم السماح بمصادقة الأسئلة والأجوبة #
# (مصادقة التحدي والاستجابة). كل الدعم #
# أنواع المصادقة من login.conf الافتراضي "نعم" ، #
# بمعنى آخر. يسمح. #
# معطل في أوبونتو لأسباب أمنية. #
# #
ChallengeResponseA المصادقة لا
# #
HostbasedUsesNameFromPacketOnly #
# #
# يحدد كيفية حصول الخادم على اسم مضيف العميل #
# مع نظام المصادقة على أساس التحقق من المضيف. #
# إذا تم التعيين على "نعم" عند التحقق من التناسق في الملفات #
# ~ / .shosts أو ~ / .rhosts أو /etc/hosts.equiv sshd ستكون #
# استخدم اسم المضيف الذي قدمه العميل. #
# (إجراء تحليل DNS العكسي) إذا تم التعيين على "لا" #
# sshd سيحل الاسم من اتصال TCP نفسه. #
# الافتراضي هو "لا". #
# #
تجاهل
# #
# تعطيل استخدام ملفات .rhosts و .shosts #
# أثناء المصادقة المستندة إلى المضيف. #

# الملفات /etc/hosts.equiv و /etc/ssh/shosts.equiv لا تزال #
# يستخدم. #
# الافتراضي هو "نعم". #
# #
IgnoreRhosts نعم
# #
تجاهل المضيفين
# #
# تحديد ما إذا كان يجب على sshd تجاهل أسماء المستخدمين أم لا
# ملف "مضيفين معروفين" ~ / .ssh / known_hosts قيد التقدم #
# المصادقة على أساس التحقق من المضيف #
# (RhostsRSAAuthentication أو HostbasedAuthentication). #
# الافتراضي هو "لا". #
# #
PermitBlacklisted Keys #
# #
# يشير إلى ما إذا كان يجب أن يقبل sshd المفاتيح المدرجة في #
# قائمة سوداء على أنها مخترقة (معروفة بأنها مخترقة #
# مفاتيح (انظر ssh-vulnkey)). إذا تم التعيين على "نعم" #
سيتم تسجيل # محاولات مصادقة بهذه المفاتيح #
# تسجيل وقبول إذا كانت القيمة "لا" محاولات #
سيتم رفض # مصادقة. #
# الافتراضي هو "لا". #
# #
تصريح كلمة المرور فارغة
# #
# إذا تم السماح بمصادقة كلمة المرور ، #
# يشير إلى إمكانية تسجيل الدخول بكلمة مرور فارغة. #
# الافتراضي هو "لا". #
# #
PermitEmptyPasswords لا
# #
PermitRootLogin #
# #
# يشير إلى ما إذا كان يُسمح بتسجيل الدخول إلى ssh باعتباره المستخدم المتميز #
# (جذر). يمكن أن تأخذ القيم:
# يمكن للمستخدم المتميز "نعم" تسجيل الدخول. ينطبق #
# نظام المصادقة العالمية الحالي. #
# #
# يمكن للمستخدم المتميز "بدون كلمة مرور" تسجيل الدخول. #
# سيتم تعطيل مصادقة كلمة المرور الخاصة به. #
# #
# سيتمكن المستخدم المتميز "فرض الأوامر فقط" من تسجيل الدخول ، #
# باستخدام مصادقة المفتاح العام و #
# فقط إذا مر أمرًا ليتم تنفيذه. #
# هذا مفيد للنسخ الاحتياطي ، #
# حتى عندما يكون عاديًا (أي ليس عبر ssh) #
# تم رفض تسجيل دخول المستخدم المتميز. كل الطرق الأخرى #
# سيتم تعطيل المصادقة الخاصة بالمستخدم المتميز. #
# #
# "لا" لا يمكن للمستخدم المتميز استخدام ssh لـ #
# تسجيل الدخول. #
# #
# القيمة الافتراضية هي نعم". #
# #
PermitRootLogin لا
# #
بروتوكول
# #
# يحدد البروتوكول الذي يجب أن يستخدمه sshd. #
# القيم المحتملة هي '1' و '2' ssh1 و ssh2 #
# على التوالى. التسجيل المتزامن ممكن مع #
# والتي يجب أن تكون مفصولة بفواصل. #
# الافتراضي هو "2.1". #
# لاحظ أن ترتيب البروتوكول في #
# إدخال لا يعين أولوية ، لأن يختار العميل أي
# من عدة بروتوكولات يقدمها السيرفر له #
# use. الترميز "2،1" هو نفسه بالضبط #
# سجل "1،2". #
# #
البروتوكول 2
# #
UsePAM
# #
# تمكين واجهة PAM (وحدة المصادقة القابلة للتوصيل) #
# واجهة). إذا تم الضبط على "نعم" لجميع الأنواع #
# المصادقة بالإضافة إلى معالجة الجلسة ووحدة الحساب #
# سيستخدم PAM المصادقة بناءً على #
# request-response (ChallengeResponseAuthentication و #
# مصادقة كلمة المرور) المصادقة #
عادةً ما يؤدي # request-response في PAM نفس دور #
# مثل مصادقة كلمة المرور ، يجب عليك تعطيل #
# إما PasswordAuthentication أو #
# ChallengeResponseAuthentication. من الجدير بالذكر أن #
# إذا تم تمكين توجيه UsePAM ، فلن تتمكن من تشغيل #
# sshd كمستخدم بخلاف الجذر. #
# القيمة الافتراضية هي لا". #
# #
UsePAM نعم
# #
المصادقة كلمة المرور
# #
# يشير إلى ما إذا كانت المصادقة مسموح بها باستخدام #
# كلمه السر. #
# الافتراضي هو "نعم". #
# #
المصادقة نعم
#
مفتاح المضيف #
# #
# يحدد الملف الذي يحتوي على مفتاح المضيف الخاص ، #
# SSH للاستخدام. الافتراضي / etc / ssh / ssh_host_key #
# لبروتوكول ssh
و / etc / ssh / ssh_host_rsa_key و #
# / etc / ssh / ssh_host_dsa_key لبروتوكول ssh2. التكاليف #
# لاحظ أن sshd لن يستخدم الملف ، #
# وهو متاح لأي شخص آخر غير المستخدم. علبة #
# استخدام ملفات متعددة مع مفاتيح ، مفاتيح "rsa1" #
# لبروتوكول ssh1 و "dsa" / "rsa" لبروتوكول ssh2. #
# #
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
# #

خيارات بروتوكول SSH الإصدار 1 (ssh1) #

# لا ينصح بشدة باستخدام بروتوكول ssh1.
# بروتوكول ssh2 أكثر أمانًا من ssh1 #

# #
KeyRegenerationInterval #
# #
# لبروتوكول ssh1 مرة واحدة في وقت معين #
# يتم إنشاء مفتاح خادم مؤقت جديد تلقائيًا #
# (إذا تم استخدامه). هذا مصنوع لـ #
# منع فك تشفير الجلسات المعترضة من أجل #
# تسجيل الدخول لاحقًا باستخدام معلمات هذه الجلسات إلى الجهاز و #
# سرقة المفاتيح. لم يتم تخزين هذا المفتاح في أي مكان (مخزن في #
# ذاكرة وصول عشوائي). يحدد هذا التوجيه الفترة #
# "حياة" المفتاح في ثوان ، وبعد ذلك سيكون #
# مجددًا. إذا تم ضبط القيمة على 0 #
# لن يتم إعادة إنشاء المفتاح. #
# القيمة الافتراضية هي 3600 (ثانية). #
# #
KeyRegeneration الفاصل الزمني 3600
# #
مصادقة RhhostsRSA #
# #
# يشير إلى ما إذا كانت المصادقة المستندة إلى ملف مطلوبة #
# rhosts أو /etc/hosts.equiv جنبًا إلى جنب مع # ناجح
# مصادقة المضيف عبر RSA. #

# الافتراضي هو "لا". #
# #
المصادقة لا
# #
مصادقة RSA #
# #
# يشير إلى ما إذا كان يُسمح بمصادقة RSA "الخالصة". #
# ذات صلة فقط ببروتوكول ssh1. #
# الافتراضي هو "نعم". #
# #
مصادقة RSA لا
# #
ServerKeyBits #
# #
# يحدد عدد البتات في مفتاح الخادم المؤقت لـ #
# بروتوكول ssh1. أدنى قيمة هي 512. #
# القيمة الافتراضية هي 1024. #
ServerKeyBits 1024
# #

# خيارات بروتوكول SSH الإصدار 2 (ssh2)

# #
الأصفار #
# #
# يحدد خوارزميات التشفير المسموح بها لـ #
# بروتوكول ssh2. يجب أن تكون عدة خوارزميات #
# مفصولة بفواصل. الخوارزميات المدعومة: #
# "3des-cbc" ، "aes128-cbc" ، "aes192-cbc" ، "aes256-cbc" ، #
# "aes128-ctr" ، "aes192-ctr" ، "aes256-ctr" ، "arcfour128" ، #
# "arcfour256" ، "arcfour" ، "السمكة المنتفخة-cbc" ، "cast128-cbc". #

# aes128-cbc ، 3des-cbc ، السمكة المنتفخة ، cbc ، cast128-cbc ، arcfour128 ، #
# arcfour256 ، arcfour ، aes192-cbc ، aes256-cbc ، aes128-ctr ، #
# aes192-ctr ، aes256-ctr #
# #
HostbasedAuthentication #
# #
# يشير إلى ما إذا كان يُسمح بالمصادقة المستندة إلى #
# فحص المضيف. التحقق من rhosts أو /etc/hosts.equiv ، #
# وفي حالة النجاح ، قم بالاشتراك مع التحقق الناجح #
# مفتاح عام ، الوصول مسموح به. هذا التوجيه #
# هو نفس توجيه RhostsRSAAuthentication و #
# صالح فقط لبروتوكول ssh2. #
# الافتراضي هو "لا". #
# #
المصادقة على أساس المضيف لا
# #
MACs
# #
# يشير إلى خوارزمية MAC صالحة (الرسالة رقم
# رمز الدخول). خوارزمية MAC المستخدمة #
# ssh2 لحماية تكامل البيانات. بعض #
يجب فصل # من الخوارزميات بفاصلات. #
# الافتراضيات هي: #
# hmac-md5 ، hmac-sha1 ، [بريد إلكتروني محمي]، hmac-ripemd160، #
# hmac-sha1-96 ، hmac-md5-96 #
# #
مصادقة PubkeyAuthentication
# #
# يشير إلى ما إذا كانت المصادقة مسموح بها بناءً على #
# المفتاح العمومي. ذو صلة فقط ببروتوكول ssh2. #
# الافتراضي هو "نعم". #
# #
PubkeyAuthentication نعم

خيارات GSSAPI

# #
ينطبق فقط على بروتوكول ssh2 #
# #
مصادقة GSSAPIA
# #
# يشير إلى ما إذا كانت مصادقة المستخدم مسموح بها على #
# على أساس GSSAPI. الافتراضي هو "لا" ، أي محظور. #
# #
GSSAPIKeyExchange #
# #
# يشير إلى ما إذا كان تبادل المفاتيح على أساس # مسموحًا به
#GSSAPI. تبادل مفتاح GSSAPI لا يعتمد على #
# مفاتيح ssh عند التحقق من هوية المضيف. #
# الافتراضي "لا" أي التبادل محظور. #
# #
GSSAPICleanupCredentials
# #
# يشير إلى ما إذا كان سيتم تدمير # تلقائيًا
# ذاكرة التخزين المؤقت لبيانات اعتماد المصادقة المخصصة عندما #
# إنهاء الجلسة. #
# افتراضي "نعم" أي يجب تدميرها. #
# #
GSSAPIStrictAcceptorCheck #
# #
# يشير إلى مدى صرامة الشيك #
# هوية العميل عند المصادقة عبر GSSAPI. #
# تؤدي قيمة "نعم" إلى قيام العميل بالمصادقة في #
# خدمة المضيف المستقبلة على المضيف الحالي. بمعنى "لا" #
# يسمح للعميل بالمصادقة بأي #
# من مفتاح الخدمات. #
# القيمة الافتراضية هي نعم". #
# لاحظ أن تعيين القيمة على "لا" يمكن أن #
# العمل فقط مع مكتبات Kerberos GSSAPI النادرة. #
# #

# خيارات Kerberos #

# #
مصادقة Kerberos
# #
# يشير إلى ما إذا كانت كلمة المرور المقدمة # تتطلب
# مستخدم للمصادقة #
# (PasswordAuthentication) عمليات التحقق في Kerberos KDC. #
# لاستخدام هذا الخيار ، يحتاج الخادم #
# تأكد من صحة KDC. (يحتاج الخادم إلى #
# Kerberos servtab الذي يسمح بالتحقق من #
هوية # KDC) #
# الافتراضي هو "لا". #
# #
KerberosGetAFSToken #
# #
# إذا كان AFS نشطًا وتلقى المستخدم Kerberos 5 TGT ، #
# ما إذا كنت ستحاول الحصول على رمز AFS المميز قبل المستخدم #
# سيصل إلى مجلده الرئيسي. #
# الافتراضي هو "لا". #
# #
KerberosOrLocalPasswd #
# #
# يحدد ما يجب فعله إذا كان رقم المصادقة
# فشل عبر Kerberos. إذا #
# قيمة = "نعم" سيتم التحقق من كلمة المرور باستخدام #
# أي آلية تفويض محلية إضافية ، #
# على سبيل المثال / etc / passwd. #
# الافتراضي هو "نعم". #
# #
KerberosTicketCleanup #
# #
# يحدد ما إذا كان سيتم تدمير الملف تلقائيًا باستخدام #
# ذاكرة التخزين المؤقت لبطاقة المستخدم عند انتهاء الجلسة. #
# الافتراضي هو "نعم". #
# #

# خيارات إعادة التوجيه

# #
AllowAgentForwarding
# #
# يحدد ما إذا كان سيتم السماح بإعادة التوجيه أو رفضه #
# ssh-agent "أ. الافتراضي هو" نعم "، أي السماح. #
# لاحظ أن تعطيل عمليات إعادة التوجيه لا #
# زيادة الأمان حتى المستخدمين أيضًا #
# تم رفض الوصول إلى قذيفة لأن يمكنهم دائمًا تعيين #
# نظرائك من الوكلاء. #
# #
AllowAgentForwarding لا
# #
AllowTcpForwarding
# #
# يحدد ما إذا كان سيتم السماح بإعادة توجيه TCP أو تعطيله. #
# الافتراضي هو "نعم" ، أي يسمح. ومن الجدير بالذكر، #
# ماذا كما في حالة AllowAgentForwarding تعطيل #
# عمليات إعادة التوجيه لن تزيد من الأمان ما لم #
سيكون لدى # مستخدمين إمكانية الوصول إلى وحدة التحكم ، لأن يستطيعون #
# تثبيت نظرائك. #
# #
# #
AllowTcpForwarding لا
# #
بوابة الموانئ
# #
# يحدد ما إذا كان سيتم السماح للمضيفين البعيدين بالوصول إلى #
# منافذ معاد توجيهها. بشكل افتراضي ، sshd يستمع #
# اتصالات للمنافذ المعاد توجيهها على المضيف المحلي فقط #
# واجهة (استرجاع). لا يعطي جهاز تحكم عن بعد آخر #
# مضيفين يتصلون بالمنافذ المعاد توجيهها. علبة #
# استخدم GatewayPorts للسماح لـ sshd بالقيام بذلك #
# صنع. يمكن أن يأخذ التوجيه 3 قيم: #
# استرجاع "لا" فقط. #
# "نعم" - أي عناوين. #
# عناوين "العملاء المحددة" المحددة من قبل العميل. #
# #
منافذ البوابة لا
# #
فتح التصريح
# #
# يحدد مكان السماح بإعادة توجيه منفذ TCP. #
# يجب أن يأخذ تلميح إعادة التوجيه واحدًا من #
# من النماذج التالية: #
# مضيف PermitOpen: المنفذ #
# PermitOpen IPv4_addr: المنفذ #
# PermitOpen: المنفذ #
# يمكن تحديد إدخالات متعددة عن طريق فصلها بمسافات. #
# يمكن استخدام الوسيطة "أي" لإزالة كل #
# حظر على إعادة توجيه المنفذ. الافتراضي هو أي #
# إعادة التوجيه المسموح بها. #
# #
تصريح نفق
# #
# يشير إلى ما إذا كان يُسمح بإعادة توجيه جهاز التوليف. #
# يمكن أن تأخذ القيم: #
# "نعم" #
# "نقطة إلى نقطة" (طبقة الشبكة الثالثة) #
# "إيثرنت" (طبقة الشبكة الثانية) #
# "لا" #
# تسمح القيمة "نعم" بـ "نقطة إلى نقطة" في نفس الوقت #
# و "إيثرنت". الافتراضي هو "لا". #
# #

خيارات التسجيل

# #
سهولة
# #
# يحدد رمز كائن السجل لكتابة الرسائل إلى #
# سجل النظام من sshd. القيم الممكنة: #
# شيطان #
#المستعمل#
# AUTH #
# LOCAL0 #
# LOCAL1 #
# LOCAL2 #
# LOCAL3 #
# LOCAL4 #
# LOCAL5 #
# LOCAL6 #
# LOCAL7 #
# الافتراضي هو AUTH. #
# #
مصادقة النظام
# #
تسجيل مستوى
# #
# يعين مستوى الإسهاب لسجل sshd. #
# الخيارات الممكنة: #
#صامتة#
#هادئ#
#قاتلة - مهلك#
# خطأ #
#معلومات#
# ضارب #
# تصحيح #
# DEBUG1 #
# DEBUG2 #
# DEBUG3 #
# الافتراضي هو INFO. #
# DEBUG و DEBUG
متساوية مع بعضها البعض. #
حدد # DEBUG2 و DEBUG3 أعلى مستويات التصحيح #
# انتاج. يهدد التسجيل بمستوى DEBUG #
# خصوصية المستخدم ولا ينصح به. #
# #
معلومات مستوى السجل
# #

# إعادة توجيه X



# #
X11 إعادة توجيه #
# #
# يشير إلى ما إذا كان يُسمح بإعادة التوجيه الرسومي #
# أنظمة فرعية X11. يمكن أن تأخذ القيم "نعم" أو "لا". #
# الافتراضي هو "لا". #
# الاهتمام بتمكين إعادة توجيه X11 بسيط #
# مخاطرة كبيرة لكل من الخادم والعملاء ، لأن في #
# في حالة عرض وكيل إعادة التوجيه sshd #
# يقبل الاتصالات من أي عنوان. يستخدم #
# التوجيه X11UseLocalhost لتقييد الوصول إلى #
# إلى خادم إعادة التوجيه "x". من الجدير بالذكر أن #
# لن يضمن تعطيل إعادة التوجيه أن #
لن يتمكن أي مستخدم من إعادة توجيه X11 بسبب نأخذ #
# الوصول إلى وحدة التحكم قاموا دائمًا بتعيين # الخاصة بهم
# معيد التوجيه. إعادة توجيه X11 ستكون #
# معطل تلقائيًا إذا تم تمكينه #
# UseLogin التوجيه. #
# #
X11 إعادة توجيه لا
# #
X11UseLocalhost #
# #
# يشير إلى ما إذا كان يجب أن يحد sshd من النطاق #
# إعادة توجيه X11 إلى عنوان استرجاع محلي ، أو #
# يجب أن تسمح بأي عناوين. الافتراضي sshd #
# "plants" إعادة توجيه خادم X11 إلى عنوان محلي #
# وتعيين جزء متغير بيئة DISPLAY المقابل لـ #
# لاسم المضيف كـ "localhost". من الجدير بالذكر أن #
# قد لا يعمل بعض عملاء X11 القدامى مع هؤلاء #
# إعدادات. الافتراضي هو "نعم" ، أي إعادة توجيه #
# يقتصر على المضيف المحلي ، "لا" يعطل #
# قيود. #
# #
XAuthLocation #
# #
# يحدد المسار الكامل لبرنامج xauth. #
# افتراضي / usr / bin / X11 / xauth. #
# #
X11 عرض الإزاحة
# #
# يحدد رقم العرض الأول المتاح لـ sshd بـ #
# كإعادة توجيه X11. يتم ذلك من أجل #
# بحيث لا تتقاطع x المعاد توجيهها مع #
# حقيقة. الافتراضي هو 10. #
# #
X11 عرض أوفست 10
# #

# خيارات مختلفة

# #
تسجيل الدخول
# #
# الوقت الذي يتم بعده قطع اتصال الخادم #
# من المستخدم إذا كانوا غير قادرين على إرضاء #
# تسجيل الدخول. تسمح القيمة 0 للمستخدم بـ #
# تسجيل الدخول إلى أجل غير مسمى. الافتراضي هو 120 (ثانية). #
# #
تسجيل الدخول
# #
MaxAuthTries
# #
# يحدد الحد الأقصى لعدد محاولات المصادقة ، #
# مسموح بها لكل اتصال. #
# بمجرد أن يتجاوز عدد المحاولات الفاشلة النصف #
# قيمة معطاة ، جميع المحاولات اللاحقة ستكون #
# كن مسجلا. القيمة الافتراضية هي 6. #
# #
MaxAuth يحاول 4
# #
الحد الأقصى للجلسات #
# #
# يحدد الحد الأقصى لعدد الاتصالات المتزامنة #
# لكل اتصال بالشبكة. الافتراضي هو 10. #
# #
الحد الأقصى للجلسات 1
# #
ماكس ستارتوبس #
# #
# يحدد الحد الأقصى لعدد المتزامن #
# اتصالات غير مصرح بها لـ sshd. إذا #
# سيتجاوز عدد الاتصالات الحد الاضافي لكل #
ستتم إعادة تعيين # اتصالات حتى الرقم الحالي
# اتصالات لن تكتمل أو الحصول على إذن ناجح ، #
# أو انتهاء الفترة الزمنية المحددة في التوجيه #
# تسجيل الدخول القيمة الافتراضية هي 10. #
# بالإضافة إلى ذلك ، يمكنك تعيين إعادة تعيين الاتصال المبكر ، #
# تحديد كمعامل ثلاث قيم مفصولة بعلامة #
# نقطتان "start: rate: full" (على سبيل المثال: "10:30:60"). #
# sshd سيرفض محاولة الاتصال باحتمالية تساوي #
# "معدل / 100" (أي 30٪ في مثالنا) إذا كان بالفعل #
# هناك "بداية" (10) للاتصالات غير المصرح بها. #
# يزيد الاحتمال خطيًا وأي محاولات #
سيتم رفض # اتصالات إذا كان عدد الاتصالات غير المصرح بها #
سيصل عدد الاتصالات إلى "ممتلئ" (60). #
# #
ضغط#
# #
# يشير إلى ما إذا كان ضغط البيانات ممكّنًا. يمكن #
# ضغط "نعم" مسموح به. #
# تم تأخير الضغط حتى #
# لم يتم المصادقة على المستخدم بنجاح. #
# ضغط "لا" معطل. #
# الافتراضي هو "تأخير". #
# #
UseLogin
# #
# يشير إلى ما إذا كان يجب استخدام تسجيل الدخول لـ #
# جلسة تفاعلية. القيمة الافتراضية هي لا". #
# لاحظ أن تسجيل الدخول لم يتم استخدامه مطلقًا لـ #
# تنفيذ الأوامر عن بعد. لاحظ أيضًا أن #
# باستخدام تسجيل الدخول سيجعل من المستحيل استخدام #
# X11 توجيهات التوجيه لأن تسجيل الدخول لا يعرف ماذا #
# يجب أن يفعل مع xauth. إذا تم تضمين التوجيه #
# UsePrivilegeSeparation سيتم تعطيله بعد #
# تفويض. #
# #
UsePrivilegeSeparation
# #
# يحدد ما إذا كان يجب على sshd مشاركة الامتيازات. اذا نعم #
# ثم سيخلق الطفل غير المتميز أولاً #
# عملية لحركة مرور الشبكة الواردة. بعد نجاح #
# إذن سينشئ عملية أخرى بامتيازات #
# المستخدم الذي قام بتسجيل الدخول. الغرض الرئيسي من الانفصال #
# امتيازات لمنع انتهاكات الوصول. #
# القيمة الافتراضية هي نعم". #
# #
UsePrivilegeSeparation نعم
# #
StrictModes #
# #
# يحدد ما إذا كان يجب على sshd التحقق من أوضاع الوصول و #
# ملكية مجلدات وملفات المستخدم قبل #
# السماح للمستخدم بتسجيل الدخول. هذا عادة بسبب #
غالبًا ما يجعل # مبتدئًا ملفاتهم قابلة للكتابة #
# الكل على التوالي. الافتراضي هو "نعم". #
# #
StrictModes نعم
# #
AcceptEnv #
# #
# يشير إلى متغيرات البيئة التي يتم تمريرها #
# سيتم قبولها من قبل العميل. راجع خيار SendEnv في العميل. #
# وتجدر الإشارة إلى أن تمرير المتغيرات ممكن فقط #
# لبروتوكول ssh2. يتم تحديد المتغيرات بالاسم ، #
يمكن استخدام # wildcards ('*' و '؟'). يمكنك تحديد #
# متغيرات متعددة مفصولة بمسافة ، أو مقسمة إلى #
# خطوط متعددة AcceptEnv. كن حذرا بعض #
يمكن استخدام # متغيرات البيئة لتجاوز #
# بيئات المستخدم المحظورة. استخدم هذا #
# التوجيه بعناية. لا شيء افتراضيًا #
# متغيرات البيئة المعرفة من قبل المستخدم غير مقبولة. #
# #
قبول Env LANG LC_ *
# #
تصريح المستخدم # البيئة
# #
# يشير إلى ما إذا كان يجب أن يقبل sshd #
# ~ / .ssh / البيئة والبيئة = خيار في #
# ~ / .ssh / author_keys. الافتراضي هو "لا". التكاليف #
# لاحظ أن الإذن بمعالجة البيئة يمكن أن يمنح #
# مستخدم القدرة على تجاوز القيود في بعض #
# عمليات تهيئة باستخدام آليات مثل #
# LD_PRELOAD. #
# #
# #
PidFile #
# #
# يحدد الملف الذي يحتوي على معرف العملية #
# (معرف العملية ، PID) لعفريت SSH. #
# الافتراضي /var/run/sshd.pid #
# #
# #
PrintLastLog
# #
# يحدد ما إذا كان يجب أن يعرض sshd التاريخ والوقت #
# الجلسة الأخيرة عندما يقوم المستخدم بتسجيل الدخول بشكل تفاعلي. #
# الافتراضي هو "نعم". #
# #
PrintLastLog نعم
# #
PrintMotd #
# #
# يحدد ما إذا كان يجب على sshd طباعة / etc / motd #
# عندما يقوم المستخدم بتسجيل الدخول بشكل تفاعلي. على بعض #
# أنظمة (مثل Ubuntu) هذه المعلومات هي أيضًا #
# المطبوع على الشاشة بواسطة الغلاف. #
# القيمة الافتراضية هي نعم". #
# #
PrintMotd لا
# #
لافتة
# #
# يشير إلى الملف الذي يحتوي على شعار النص الذي #
# سيظهر للمستخدم قبل الإجراء #
# المصادقة. الخيار متاح فقط لبروتوكول ssh2. #
# لا يظهر أي شيء بشكل افتراضي. #
# في Ubuntu ، تحتوي issue.net على عبارة Ubuntu (الإصدار) ، #
# على سبيل المثال ، للكارما هو "Ubuntu 9.10". علبة #
# تستخدم لإرباك المهاجمين المحتملين ، #
# الكتابة هناك على سبيل المثال "My D-Link Interet Router" =) #
# #
شعار /etc/issue.net
# #
دليل شروت #
# #
# إذا تم تحديده ، يوفر المسار الذي سيؤدي إلى #
# جذر بعد المصادقة. الطريق وكلها #
يجب أن يتطابق # محتوى مع المحتوى المملوك #
# مجلدات المستخدم المتميز ولا يمكن الوصول إليها من #
# مشاركات بواسطة مستخدمين آخرين. #
# قد يحتوي المسار على تسميات تم استبدالها بـ #
# عملية المصادقة: #
تم استبدال # ٪٪ بـ "٪" # الحرفية
تم استبدال #٪ h بالدليل الرئيسي #
# مصادقة المستخدم #
#٪ u يتم استبداله باسم المستخدم الذي تتم مصادقته #
# يجب أن يحتوي مجلد chroot على جميع الملفات الضرورية و #
# مجلدات لجلسة المستخدم. للتفاعلية #
مطلوب # جلسات على الأقل: #
# قذيفة ، عادة sh #
# الأجهزة الأساسية في / dev ، مثل: #
# null ، صفر ، stdin ، stdout ، stderr ، عشوائي و tty #
# لجلسة بيانات باستخدام بروتوكول sftp لا شيء #
# لا توجد إعدادات إضافية مطلوبة إذا تم استخدامها #
# العملية الداخلية لخادم sftp. انظر النظام الفرعي لـ #
# معلومات اكثر. بشكل افتراضي ، لا يتم تنفيذ الكروت. #
# #
ForceCommand
# #
# يتسبب في تنفيذ الأمر المحدد. يتجاهل #
# أي أوامر مقدمة من العميل أو مكتوبة إلى #
# ~ / .ssh / rc. يتم استدعاء الأمر من المستخدم #
# قذائف مع خيار -c. مناسبة لإطلاق قذيفة ، #
# أوامر أو أنظمة فرعية. الأكثر فائدة داخل الكتلة #
# تطابق. يتم تخزين الأمر الذي أرسله العميل في الأصل #
# في متغير البيئة SSH_ORIGINAL_COMMAND. إذا #
# حدد الأمر "internal-sftp" ، سيتم تشغيله #
# خادم sftp داخلي لا يحتاج # اضافي
# من الملفات والمجلدات الموضحة في توجيه ChrootDirectory. #
# #
النظام الفرعي #
# #
# يعرّف ويكوّن نظامًا فرعيًا خارجيًا (على سبيل المثال ، #
# عفريت نقل الملفات). #
# الوسيطات هي الاسم والأمر (مع # اختياري
# وسيطات) التي سيتم تنفيذها أثناء الطلب #
# للأنظمة الفرعية. يبدأ الأمر sftp-server بـ "sftp" #
# نظام فرعي لنقل الملفات. بالإضافة إلى ذلك ، يمكنك تحديد #
# كنظام فرعي "داخلي sftp" والذي سيعمل #
# خادم sftp داخلي. هذا يمكن أن يبسط إلى حد كبير #
# الإعداد في حالة استخدام الأمر #
# دليل ChrootDirectory لا توجد أنظمة فرعية افتراضيًا #
# لا يسمى. ذو صلة فقط ببروتوكول ssh2. #
# #
#Subsystem sftp / usr / lib / openssh / sftp-server #
# #

# بلوك المباراة #

# #
# تم نقله خصيصا لنهاية الملف ليجعله أكثر ملاءمة #
# كتابة قواعد المباراة. #
# مادكوكس. #
# #
# توجيه المطابقة هو بداية الأمر # الشرطي
# منع. إذا تم استيفاء جميع المعايير المحددة في السطر #
# المطابقة ، يتم تنفيذ التوجيهات على الأسطر اللاحقة من الكتلة ، #
# السماح لك بتجاوز قيم توجيهات الملفات العامة #
# sshd_config للحالة التي هي معيار توجيهي #
# تطابق. تعتبر جميع الأسطر بعد السطر # كتل.
# مع المعيار (سطر المطابقة) حتى سطر المباراة التالي #
# أو حتى نهاية الملف. مطابقة وسيطة التوجيه واحد أو #
# عدة أزواج من إدخالات المعايير. أنواع السجلات الممكنة: #
#المستعمل#
#مجموعة#
#استضافة#
#تبوك#
# يمكن أن تحتوي السجلات على القيمتين الفرديتين #
# (على سبيل المثال ، المستخدم = المستخدم) وقيم متعددة ، #
# مفصولة بفواصل (المستخدم = المستخدم 1 ، المستخدم 2). هم ايضا يستطيعون #
# تستخدم التعبيرات العادية الموضحة في #
قسم # أنماط ssh_config. إدخالات في المعايير #
# يمكن أن يحتوي العنوان على عناوين في تدوين CIDR #
# (العنوان / طول القناع ، مثل "192.0.2.0/24" أو #
# "3ffe: ffff :: / 32"). ومن الجدير بالذكر أن المقدمة #
# يجب أن يتطابق طول القناع مع العنوان ، وكذلك #
# long / short for address لن يعمل. #
# يمكن لأوامر المطابقة استخدام # فقط
# مجموعة محددة من التوجيهات: #
# AllowTcpForwarding #
# لافتة #
# دليل شروت #
# ForceCommand #
# منافذ البوابة #
# مصادقة GSSAPIA #
# المصادقة المستندة إلى المضيف #
# KbdInteractiveAuthentication #
# مصادقة Kerberos #
# MaxAuthTries #
# الحد الأقصى للجلسات #
# مصادقة كلمة المرور #
# تصريح فتح #
# PermitRootLogin #
# مصادقة RhostsRSAA #
# مصادقة RSA #
# X11DisplayOffset #
# X11 إعادة توجيه #
# X11UseLocalHost #

على الفور ملاحظة صغيرة إلى التكوين ، فإنه يعطل القدرة على تسجيل الدخول عبر ssh كمستخدم أساسي ، لذلك إذا كنت " هواة"قم بتغيير إعداد PermitRootLogin إلى نعم

لنسخ التكوين أعلاه إلى جهاز unix الخاص بك
انتقل إلى الدليل حيث يتم تخزين ملف التكوين sshd_config

سودو cd / etc / ssh

نظرًا لأننا قمنا بعمل نسخة احتياطية من ملف sshd_config ، فسنحذفه

sudo rm sshd_config

لا يزال في الدليل / etc / ssh ، انسخ ملف تكوين ssh أعلاه من موقع itautsors ،

sudo wget http: // website / sshd_config

أعد تشغيل البرنامج الخفي

إعادة تشغيل sudo service ssh

تأكد من تشغيل عفريت SSH

Ps-A | grep sshd

سنرى شيئًا كهذا.

<какой то номер>؟ 00:00:00 sshd

إذا لم يكن هناك خط ، فإن عفريت SSH لا يعمل ،

تحقق مما إذا كانت الاتصالات الواردة تستمع:

سودو ss -lnp | grep sshd

ردا على ذلك نحصل عليه

0 128 ::: 22 ::: * المستخدمون: (("sshd"، 16893،4)) 0128 *: 22 *: * المستخدمون: (("sshd"، 16893،3))

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

دعنا نحاول تسجيل الدخول من الكمبيوتر المحلي (أي أننا نقوم بتسجيل الدخول من نفس جهاز الكمبيوتر الذي قمنا بإعداد خادم ssh عليه ، إذا جاز التعبير ، الفحص الأولي) ، (تذكر أن المنفذ الخاص بنا ليس معيار 8022):

ssh -v localhost -p 8022

سيتم عرض معلومات التصحيح ، ومطالبة بإدخال كلمة مرور.
بعد اتصال ناجح ، للخروج ، اكتب:

قم بإعداد الوصول إلى خادم OpenSSH باستخدام OpenSSH Client مع تفويض المفتاح

معطى: مضيف خادم OpenSSH الذي نريد تسجيل الدخول إليه عبر ssh في المستقبل تحت اسم مستخدم NameUserOnOpenSSHServer من مضيف OpenSSH Client. دعنا ننشئ زوجًا من المفاتيح على المضيف الذي نريد الاتصال منه (OpenSSH Client). تحقق مما إذا كان قد تم إنشاء زوج المفاتيح بالفعل.
بعد الموافقة على المكان الذي تم حفظ المفتاح فيه (/ home/NameUserOnOpenSSHClient/.ssh/id_rsa) ، يمكن ترك كلمة المرور فارغة ، ثم عند المصادقة بشهادة ، لن تدخل كلمة المرور بلطف ، وهي أقل أمانًا ولكن كثيرًا أكثر ملاءمة (في مثالنا ، لن ندخل كلمة المرور):

4096

في المجلد الرئيسي ~ / .ssh للمستخدم الذي بدأ الجيل بموجبه (في مثالنا NameUserOnOpenSSHClient) ستظهر الملفات على مضيف OpenSSH Client:

~ / .ssh / id_rsa.pubعام
~ / .ssh / id_rsaخاص

قم بتعيين الأذونات على المجلد والملفات
لا يهم أي مستخدم سنبدأ بموجبه إنشاء عميل OpenSSH ، يجب أن يكون تسجيل الدخول الوحيد إلى جهاز خادم OpenSSH البعيد تحت هذا المستخدم ، حيث سيتم تعيين الحقوق التالية (يجب تعيين هذه الحقوق بحيث لم يتم اختراق المفتاح الخاص):

$ chmod 0700 ~ / .ssh / $ chmod 0600 ~ / .ssh / id *

دعنا ننقل المفتاح العام من العميل إلى الخادم للمستخدم الذي نستخدم بموجبه الأمر ssh-copy-id إلى الملف ~ / .ssh / author_keys ، إذا كان المنفذ الذي يستمع الخادم عليه غير قياسي ، فأنت تحتاج إلى تسجيله باستخدام مفتاح التبديل -p وإرفاقه بعلامات اقتباس. يمكن نقل المفتاح بأي طريقة لأنه عام.

ssh-copy-id "-p 8022 [بريد إلكتروني محمي]"

NameUserOnOpenSSHServer - هذا هو المستخدم الذي سنقوم بموجبه بتسجيل الدخول إلى الجهاز البعيد في المستقبل.
بعد ذلك ، تحتاج إلى إدخال كلمة مرور مستخدم NameUserONOpenSSHServer ، وبعد التفويض الناجح سنرى تلميحًا:

حاول الآن تسجيل الدخول إلى الجهاز باستخدام "ssh" [بريد إلكتروني محمي]"" ، وتسجيل الوصول: ~ / .ssh / author_keys للتأكد من أننا لم نضف مفاتيح إضافية لم تكن تتوقعها.

نقوم بتسجيل الدخول إلى المضيف عبر ssh والتحقق من محتويات الملف (يمكن تسجيل مفاتيح أخرى في هذا الملف ، ونحن نبحث عن مفاتيحنا.) NameUserONOpenSSHServer / .ssh / author_keys:

sudo ssh " [بريد إلكتروني محمي]"sudo cat /home/NameUserONOpenSSHServer/.ssh/authorized_keys

يجب أن يتطابق مع محتوى الملف. NameUserONOpenSSHClient / .ssh / id_rsa.pub

قط سودو / home/NameUserONOpenSSHClient/.ssh/id_rsa.pub

sudo mcedit / etc / ssh / sshd_config

اضغط على F7 ، وابحث عن PubkeyAuthentication و RSAAuthentication و AuthorizedKeysFile
يجب عدم التعليق على الأسطر / تعيين المعلمات (تحقق):

# السماح باستخدام مفاتيح RSA RSAAuthentication yes # إذا كنت تستخدم SSH1 فمن غير المرغوب فيه. AuthorizedKeysFile٪ h / .ssh / authorized_keys

أعد تشغيل خادم SSH

إعادة تشغيل sudo service ssh

قمنا بتعيين حقوق الملف / home/NameUserOnOpenSSHServer/.ssh/authorized_keys

Chmod 0600 ~ / .ssh / author_keys

خرجنا من وحدة تحكم OpenSSHServer ، وحاول تسجيل الدخول من العميل إلى الخادم باستخدام شهادة ، وأدخل السطر ويجب أن ندخل إلى وحدة تحكم OpenSSHServer دون إدخال كلمة مرور (إذا لم تقم بإدخال كلمة مرور عند إنشاء المفاتيح)

ssh [بريد إلكتروني محمي]

تتناول هذه المقالة إعدادات الوصول عن بُعد لخادم Ubuntu. مبدأ الاتصال بسيط للغاية: من جانب العميل ، نستخدم برنامجًا للوصول عن بُعد (على سبيل المثال ، Putty) ، على جانب الخادم نقوم بتثبيت وتكوين حزمة OpenSSH. عند الاتصال ، يمر العميل بإجراء التفويض على الخادم ويتم إنشاء اتصال مشفر بينهما. بمزيد من التفصيل ، تم النظر في مبدأ تشغيل بروتوكول SSH في المقالة الخاصة بـ.

يظهر مخطط الشبكة أدناه. سيتم إجراء الاتصال عن بعد بالخادم من جهاز الكمبيوتر العميل.

قمنا بتثبيت خادم Ubuntu على قرص صلب فارغ. بعد التثبيت ، يجب عليك تكوين واجهة شبكة الخادم للوصول إلى الشبكة. وهي ، قم بتعيين عنوان IP ، وقناع الشبكة ، والبوابة الافتراضية. إذا تم تكوين واجهتك بالفعل ، فيمكنك تخطي هذه الخطوة. تم تحديد إعدادات واجهة الشبكة في الملف / الخ / شبكة / واجهات. استخدم محرر نصوص للتحرير نانو.

ندخل في وضع التحرير لملف الواجهات. نحن مهتمون بكل شيء أدناه # واجهة الشبكة الأساسية. في الوقت الحالي ، يتلقى الخادم عنوان IP عبر DHCP ، وهو ليس صحيحًا تمامًا. يجب أن يكون للخادم عنوان IP ثابت حتى تعرف جميع العقد على الشبكة عنوانها بالضبط. لنكتب إعدادات الشبكة يدويًا.

خادمي موجود على الشبكة الفرعية المحلية 192.168.1.0/24. تم تعيين IP 192.168.1.2 للخادم ، وقناع 255.255.255.0 ، والبوابة الافتراضية 192.168.1.1 ، وعنوان خادم DNS 192.168.0.1

لحفظ الملف ، اضغط على Ctrl + X -> Y -> Enter. لتطبيق الإعدادات ، يجب إعادة تشغيل عملية الشبكة. يمكنك أيضًا إعادة تشغيل الخادم ببساطة باستخدام الأمر sudo reboot.

check (الأمر ifconfig -a) - الإعدادات المطبقة

كل شيء جاهز لـ OpenSS ، والذي يمكن تثبيته من الجهاز باستخدام الأوامر

sudo apt-get install openssh-client

sudo apt-get install openssh-server

يمكنك التحكم في بدء تشغيل خادم SSH وإيقافه وإعادة تشغيله باستخدام الأوامر

sudo $ الخدمات ssh توقف | بدء | إعادة بدء

في الواقع ، لديك بالفعل وصول SSH إلى الخادم. ولكن من أجل الضبط الدقيق ، يوجد ملف تكوين في / etc / ssh / sshd_config. يتم الوصول إلى التكوينات فقط من تحت الجذر.

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

___________________________

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

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

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

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

تثبيت OpenSSH على أوبونتو

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

لذلك للتثبيت ، افتح Terminal باستخدام اختصار لوحة المفاتيح Ctrl + Alt + T.وقم بتشغيل الأمر:

sudo apt install openssh-server

سيتم تنزيل العديد من الحزم ، وعندما يكتمل تثبيت خادم Ubuntu ssh ، سيكون البرنامج جاهزًا للعمل. إذا كنت تريد أن تبدأ الخدمة تلقائيًا ، فأنت بحاجة إلى إضافتها لبدء التشغيل. لتمكين ssh Ubuntu 16.04 ، قم بما يلي:

sudo systemctl تمكين sshd

إذا كنت تريد بعد ذلك إزالة الخدمة من بدء التشغيل ، فاستخدم الأمر "تعطيل":

sudo systemctl تعطيل sshd

أما بالنسبة لعميل ssh ، فهو مثبت بالفعل على النظام افتراضيًا. يمكنك الآن محاولة الاتصال بخادم ssh المحلي عن طريق كتابة:

في إحدى المقالات السابقة التي تناولناها في الاعتبار ، يمكنك الآن التأكد من أنه داخل هذا الجهاز يعني عنوانًا محليًا:

بنفس الطريقة تمامًا ، يمكنك ssh ubuntu الوصول إلى أي كمبيوتر آخر على الشبكة. للقيام بذلك ، يكفي تحديد عنوان IP واسم المستخدم الخاصين به بالتنسيق التالي بدلاً من المضيف المحلي:

$ ssh اسم المستخدم ip_address

إعداد SSH في أوبونتو

مع الإعدادات الافتراضية ، لا يكون خادم SSH آمنًا جدًا ، لذا قبل أن يصبح البرنامج جاهزًا للاستخدام الكامل ، يجب تهيئته قليلاً. يتم تخزين جميع إعدادات خادم SSH في ملف التكوين sshd_config الموجود في المجلد / etc / ssh.

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

sudo cp / etc / ssh / sshd_config /etc/ssh/sshd_config.factory-defaults

sudo vi / etc / ssh / sshd_config

بادئ ذي بدء ، من المستحسن تغيير المنفذ الذي يعمل عليه ssh ، لم يكن المهاجم المحتمل يعرف ما إذا كانت هذه الخدمة ممكّنة لديك. ابحث عن السطر في ملف التكوين ميناءواستبدال قيمته بأي رقم ، على سبيل المثال ، المنفذ 2222:

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

للسماح بالمصادقة بالمفتاح بدلاً من كلمة المرور ، ابحث عن السطر مصادقة PubkeyAuthenticationوتأكد من قيمتها نعم.

بعد اكتمال جميع الإعدادات ، احفظ التغييرات بالضغط على: w وأعد تشغيل خدمة ssd:

إعادة تشغيل sudo systemctl ssh

مزيد من التفاصيل حول إعداد واستخدام مختلف الخواص الدقيقة لـ ssh موصوفة في المقالة.

إذا قمت بتغيير المنفذ ، فعند الاتصال بالعميل ، تحتاج أيضًا إلى تحديد منفذ جديد ، حيث سيتم استخدام 22 بشكل افتراضي ، على سبيل المثال:

ssh -p 2222 localhost

بالإضافة إلى ذلك ، إذا تم تثبيت جدار حماية وتكوينه على الكمبيوتر ، فإنه يحتاج أيضًا إلى السماح بالوصول إلى منفذ ssh الجديد ، للقيام بذلك ، قم بتشغيل:

sudo ufw allow 2222

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

sudo ufw تسمح 22

اكتمل إعداد Ubuntu 16.04 ssh.

الاستنتاجات

الآن وبعد اكتمال تثبيت Ubuntu 16.04 ssh ، يمكنك الوصول إلى جهاز الكمبيوتر الخاص بك عن بُعد عبر الإنترنت والتأكد من أنه آمن. إذا كان لديك أي أسئلة ، اسأل في التعليقات.

في نهاية الفيديو ، والذي يشرح بالتفصيل ما هو ssh:

هذه المقالة تم وضع علامة كعب. انظر الملاحظة في نهاية المقال.

تركز هذه المقالة على العميل الطرفي الآمن والخادم (shell الآمن) في Ubuntu ، وتكوينهما واستخدامهما. SSH هو بروتوكول شبكة خاص يسمح بالوصول عن بعد إلى جهاز كمبيوتر بدرجة عالية من أمان الاتصال. يمكنك قراءة المزيد عن بروتوكول ssh.

وصف مبادئ التشغيل والتطبيقات المستخدمة

بشكل أساسي ، يتم تنفيذ SSH كتطبيقين - خادم SSH وعميل SSH. يستخدم Ubuntu تطبيقًا مجانيًا لعميل وخادم SSH ، OpenSSH. عند الاتصال ، يمر العميل بإجراء التفويض على الخادم ويتم إنشاء اتصال مشفر بينهما. يمكن لخادم OpenSSH العمل مع بروتوكولات ssh1 و ssh2. يعتبر بروتوكول ssh1 حاليًا غير آمن وبالتالي لا يُنصح به بشدة. لقد حذفت عمدًا العديد من التفاصيل الفنية حول كيفية عمل البروتوكول ، نظرًا لأن الغرض الرئيسي من هذا الدليل هو وصف إعداده واستخدامه. هناك العديد من المقالات على الإنترنت حول البروتوكول نفسه ، ومبادئ تشغيله ، وخوارزميات التشفير ، وما إلى ذلك ، على سبيل المثال ، يمكنك أن تقرأ عنها بالتفصيل.

التركيب

ثَبَّتَ OpenSSHيمكنك استخدام الأمر من المحطة:

sudo apt-get install ssh

تحتوي حزمة ssh metapackage على كل من العميل والخادم ، ولكن هذا على الأرجح لن يؤدي إلا إلى تثبيت الخادم ، نظرًا لأن العميل مضمن بالفعل في Ubuntu افتراضيًا.

ضبط الخادم

عند تثبيت SSH ، تتم إضافة الخادم تلقائيًا لبدء التشغيل. يمكنك التحكم في بدايته أو إيقافه أو إعادة تشغيله باستخدام الأوامر:

sudo service ssh stop | بدء | إعادة بدء

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

مثال على تكوين خادم SSH الافتراضي في أوبونتو:

# مثال على تكوين خادم مفتوح ssh بالروسية # # comments..2010. # # # # # # الاصطلاحات: # # بشكل افتراضي ، يشير هذا إلى سلوك sshd عندما # # لا يتم تحديد هذا التوجيه صراحة. تجدر الإشارة إلى أن ملف sshd_config في Ubuntu # # يحتوي بالفعل على عدد من الإعدادات التي هي # # الافتراضية لـ Ubuntu على وجه التحديد. # # تم تحديد هذه الإعدادات في هذا الملف. # # # إعدادات العنوان / المنفذ ، إلخ. # # # Port # # # المنفذ المطلوب استخدامه. يمكنك تحديد أكثر من واحد ، على سبيل المثال: # # Port 22 # # Port 23 # # Port 24 # # يوصى باستخدام منفذ غير قياسي ، لأن # # يتم فحص المعيار القياسي غالبًا بواسطة الروبوتات لعدد # من الثقوب المحتملة. يمكن حذفها إذا أعطيت # # عبر العنوان. راجع أيضًا معلمة ListenAddress. # # # Port 22 # # ListenAddress # # # # عنوان الشبكة الذي "يستمع" الخادم عليه. يمكن كتابة العنوان # # على النحو التالي: # # ListenAddress host | IPv4_addr | IPv6_addr # # ListenAddress host | IPv4_addr: port # # ListenAddress: port # # إذا لم يتم تحديد أي منفذ ، سيستمع sshd على هذا العنوان و # # على المنفذ المحدد في منفذ الخيارات. إذا كنت # # تستخدم ListenAddress بدون تحديد منفذ ، فيجب أن يأتي خيار # # Port قبل خيار ListenAddress. إذا تركت محذوفة ، # # افتراضيًا للاستماع إلى جميع العناوين # # المحلية. يمكنك تحديد عناوين متعددة. # # # AddressFamily # # # # يحدد عائلة عنوان IP # # التي يجب استخدامها بواسطة sshd. الخيارات هي: # # "أي" - أي # # "inet" (IPv4 فقط) # # "inet6" (IPv6 فقط) # # الافتراضي هو "أي". # AddressFamily inet # # UseDNS # # # يحدد ما إذا كان يجب على sshd التحقق من اسم المضيف و # # استخدام هذا الاسم للتحقق من عنوان IP الذي قدمه العميل مقابل # # المستلم من DNS. # # القيمة الافتراضية هي نعم". # # # # إعدادات وصول المستخدم # # # يتم تعريف السماح / رفض مستخدم بواسطة توجيهات # # DenyUsers و AllowUsers و DenyGroups و AllowGroups. # # في نفس الوقت ، ينتقل الاختيار من أعلى إلى أسفل في السلسلة: # # DenyUsers # # || # # AllowUsers # # || # # DenyGroups # # || # # AllowGroups # # يتم قبول أسماء المستخدمين والمجموعات فقط ، ولم يتم التعرف على المعرفات الرقمية # # (معرف المستخدم). تصحيح # # الإدخال لعدة مستخدمين / مجموعات بالتناوب ، مفصولة # # بمسافة. إذا تمت كتابته كـ user @ host - ثم # # يتم التحقق من المستخدم والمضيف بشكل منفصل ، وهذا يسمح # # بتقييد الوصول إلى مستخدمين معينين من # # مضيفين معينين. تجدر الإشارة إلى أن التوجيهات # # DenyUsers و AllowUsers تأخذ # # اسم مستخدم كمعامل ، بينما تأخذ DenyGroups و AllowGroups # # اسم مجموعة. راجع الأنماط في man ssh_config لمزيد من المعلومات # # حول اصطلاحات اسم المستخدم واسم المجموعة. # # # DenyUsers # # # # قائمة بالمستخدمين الذين يجب عدم استخدامها بواسطة sshd. # # افتراضي - غير محدد = لا أحد ممنوع. هؤلاء. # # إذا تم تحديد مستخدم هنا ، فسيتم رفض وصوله إلى خادم ssh # #. # # # AllowUsers # # # قائمة المستخدمين التي يجب استخدامها بواسطة sshd ، # # افتراضي - غير محدد = الجميع مسموح لهم. هؤلاء. إذا تم تحديد # # مستخدم واحد على الأقل ، فإن وصول ssh إلى الخادم # # متاح فقط له. # # # DenyGroups # # # قائمة المجموعات التي يجب ألا تستخدمها sshd. # # افتراضي - غير محدد = لا توجد مجموعات محظورة. # # بمعنى آخر. إذا تم تحديد مجموعة واحدة على الأقل ، فسيتم رفض وصول المستخدمين # # في تلك المجموعة إلى خادم # # ssh. # # # AllowGroups # # # # قائمة المجموعات التي قد يستخدمها sshd. # # افتراضي - غير محدد = مسموح للجميع. هؤلاء. إذا تم تحديد # # مجموعة واحدة على الأقل ، فسيُسمح فقط لهؤلاء المستخدمين # # الذين ينتمون إليها بالوصول إلى خادم ssh. # # # # خيارات حالة الاتصال # # # TCPKeepAlive # # # يحدد ما إذا كان يجب على النظام إرسال TCP رسائل إلى العميل # # للحفاظ على الاتصال. إذا قمت بإرسال هذه الحزم ، # # يمكنك اكتشاف قطع الاتصال. ومع ذلك ، فإن هذا # # يعني أيضًا أنه يمكن قطع الاتصال إذا كان هناك # # مقاطعة مؤقتة في التوجيه ، و # # هذا مزعج للغاية بالنسبة للبعض. من ناحية أخرى ، إذا لم يتم إرسال هذه الرسائل # # ، يمكن أن تعمل الجلسات على الخادم # # إلى أجل غير مسمى ، مما يؤدي إلى إنتاج المستخدمين "الشبحيين" # # والتهام موارد الخادم. القيمة الافتراضية هي "نعم" ، # # ie إرسال مثل هذه الرسائل. لتعطيل إرسال # # مثل هذه الرسائل ، اضبط القيمة على "لا". في السابق كان يسمى هذا الخيار # # KeepAlive. تجدر الإشارة إلى أن هناك # # طرقًا أكثر أمانًا للتحقق من حالة الاتصال # # (انظر أدناه). # # # TCPKeepAlive yes # # ClientAliveCountMax # # # # يحدد عدد الرسائل للعملاء الذين يرسلهم sshd # # في صف واحد دون الحصول على أي استجابة # # من العميل. إذا تم الوصول إلى العتبة و # # لا يزال العميل لا يستجيب ، فسيقوم sshd بقطع اتصال العميل ، وإنهاء # # جلسة ssh. تجدر الإشارة إلى أن استخدام هذه الرسائل # # يختلف اختلافًا جوهريًا عن توجيه TCPKeepAlive. # # يتم إرسال الرسائل من / إلى العملاء عبر # # قناة مشفرة وبالتالي فهي ليست عرضة للانتحال. # # رسائل TCPKeepAlive عرضة للانتحال. تعتبر آلية # # العميل على قيد الحياة ذات قيمة خاصة في الحالات التي يحتاج فيها الخادم والعميل # # إلى معرفة متى أصبح الاتصال غير نشط. القيمة الافتراضية # # هي 3. إذا تم تعيين ClientAliveInterval # # على 15 وترك ClientAliveCountMax عند # # ، فسيتم فصل العملاء غير المستجيبين بعد # # 45 ثانية تقريبًا. هذا التوجيه يعمل فقط مع # # بروتوكول ssh2. # # # ClientAliveInterval # # # # يضبط الفاصل الزمني بالثواني. إذا لم يتم إجراء اتصال مع العميل خلال # # هذه الفترة الزمنية ، فإن sshd # # يرسل رسالة عبر قناة مشفرة # # يطلب استجابة من العميل. الافتراضي هو 0 ، أي # # لا ترسل مثل هذه الرسائل. هذا التوجيه يعمل # # فقط لبروتوكول ssh2. # # # خيارات المصادقة العامة # # AuthorizedKeysFile # # # يحدد الملف الذي يحتوي على المفاتيح العامة # # المستخدمة لمصادقة المستخدمين. قد يحتوي التوجيه # # على رموز من النموذج٪ M ، والتي يتم استبدالها أثناء # # عملية إنشاء الاتصال. # # تم تحديد العلامات التالية: # # ٪٪ - تم استبدالها بـ "٪" # #٪ h - تم استبدالها بالدليل الرئيسي # # للمستخدم المصادق # #٪ u - تم استبدالها باسم مستخدم المصادقة # # وبالتالي ، يمكن تحديد ملف المفتاح على أنه # # مسار مطلق (أي ملف مشترك واحد مع مفاتيح) ، و # # ديناميكيًا - اعتمادًا على المستخدم (أي ملف # # لكل مستخدم). # # الافتراضي هو “.ssh / author_keys”. # # مثال لملف مفتاح في المجلد الرئيسي للمستخدم: # # AuthorizedKeysFile٪ h / .ssh / authorized_key # # مثال لملف عام: # # AuthorizedKeysFile / etc / ssh / author_keys # # انظر وصف ملف Authorized_keys لـ معلومات اكثر. # # # ChallengeResponseAuthentication # # # # يحدد ما إذا كان سيتم السماح بمصادقة التحدي-الاستجابة # # (مصادقة التحدي-الاستجابة). # # يتم دعم جميع أنواع المصادقة من login.conf الافتراضي هو "نعم" ، # # ie يسمح. # # على Ubuntu ، معطل لأسباب أمنية. # # # ChallengeResponseAuthentication no # # HostbasedUsesNameFromPacketOnly # # # # يحدد كيفية حصول الخادم على اسم مضيف العميل # # في نظام مصادقة يعتمد على المضيف. # # إذا تم الضبط على "yes" ، فإن sshd # # سيستخدم اسم المضيف الذي قدمه العميل عند التحقق من وجود تطابق في # # ~ / .shosts أو ~ / .rhosts أو /etc/hosts.equiv files. # # (إجراء تحليل DNS عكسي) إذا تم التعيين على "no" # # - فإن sshd سيحل الاسم من اتصال TCP نفسه. # # الافتراضي هو "لا". # # # IgnoreRhosts # # # تعطيل استخدام ملفات rhosts و .shosts # # في المصادقة المستندة إلى المضيف. # # (RhostsRSAAuthentication أو HostbasedAuthentication). # # الملفات /etc/hosts.equiv و /etc/ssh/shosts.equiv # # لا تزال قيد الاستخدام. # # الافتراضي هو "نعم". # # # IgnoreRhosts yes # # IgnoreUserKnownHosts # # # يحدد ما إذا كان يجب أن يتجاهل sshd المستخدم # # "المضيفين المعروفين" ~ / .ssh / known_hosts file أثناء # # المصادقة المستندة إلى المضيف # # (RhostsRSAAuthentication أو HostbasedAuthentication). # # الافتراضي هو "لا". # # # PermitBlacklistedKeys # # # # يحدد ما إذا كان يجب أن يقبل sshd المفاتيح # # المدرجة في القائمة السوداء على أنها مخترقة (معروفة # # مفاتيح مخترقة (راجع ssh-vulnkey)). إذا تم التعيين على "نعم" ، فسيتم تسجيل # # محاولات المصادقة باستخدام هذه المفاتيح # وقبولها ، وإذا تم تعيينها على "لا" ، فسيتم رفض # # محاولات مصادقة. # # الافتراضي هو "لا". # # # PermitEmptyPasswords # # # إذا تم السماح بمصادقة كلمة المرور ، يشير # # إلى السماح بتسجيل الدخول بكلمة مرور فارغة. # # الافتراضي هو "لا". # # # PermitEmptyPasswords no # # PermitRootLogin # # # # يحدد ما إذا كان تسجيل الدخول إلى ssh كمستخدم متميز # # (الجذر) مسموحًا به. يمكن أن يأخذ القيم التالية: # # "نعم" - يمكن للمستخدم المتميز تسجيل الدخول. # # يتم استخدام نظام المصادقة العالمي الحالي. # # # # "بدون كلمة مرور" - يمكن للمستخدم المتميز تسجيل الدخول. # # سيتم تعطيل مصادقة كلمة المرور الخاصة به. # # # # "فرض الأوامر فقط" - سيتمكن المستخدم المتميز من تسجيل الدخول # # باستخدام مصادقة المفتاح العام و # # فقط إذا مر الأمر المطلوب ليتم تنفيذه. # # هذا مفيد للنسخ الاحتياطي # # حتى عندما يكون عاديًا (أي ليس عبر ssh) # # يتم تعطيل تسجيل الدخول إلى الجذر. سيتم تعطيل جميع طرق المصادقة # # الأخرى للمستخدم المتميز. # # # # "لا" - لا يمكن للمستخدم المتميز استخدام ssh لتسجيل الدخول إلى النظام # #. # # # # القيمة الافتراضية هي نعم". # # # PermitRootLogin yes # # Protocol # # # يحدد البروتوكول الذي يجب أن يستخدمه sshd. # # القيم المحتملة لـ '1' و '2' هي ssh1 و ssh2 # # على التوالي. الكتابة في وقت واحد ممكنة ، حيث # # يجب فصل القيم بفاصلات. # # الافتراضي هو "2،1". # # الجدير بالذكر أن ترتيب البروتوكولات في # # إدخال لا يحدد الأولوية ، كما يختار العميل أي # # من بين عدة بروتوكولات يقدمها الخادم # يجب أن يستخدمها. الإدخال "2،1" هو بالضبط # # مثل الإدخال "1،2". # # # Protocol 2 # # UsePAM # # # تمكين PAM (واجهة وحدة المصادقة القابلة للتوصيل # #). # # Challenge-response (ChallengeResponseAuthentication and # # PasswordAuthentication) تؤدي مصادقة # # Challenge-response في PAM عادةً نفس الدور # # كمصادقة كلمة المرور ، يجب عليك تعطيل # # إما PasswordAuthentication أو # # ChallengeResponseAuthentication. تجدر الإشارة إلى أنه # # إذا تم تمكين التوجيه UsePAM ، فلن تتمكن من بدء # # sshd كمستخدم آخر غير الجذر. # # القيمة الافتراضية هي لا". # # # UsePAM yes # # PasswordAuthentication # # # يشير إلى ما إذا كانت مصادقة كلمة المرور # # مسموحًا بها. # # الافتراضي هو "نعم". # # # HostKey # # # # يحدد الملف الذي يحتوي على مفتاح المضيف الخاص # # المستخدم بواسطة SSH. الافتراضي هو / etc / ssh / ssh_host_key # # لبروتوكول ssh1 و / etc / ssh / ssh_host_rsa_key و # / etc / ssh / ssh_host_dsa_key لبروتوكول ssh2. # # تجدر الإشارة إلى أن sshd لن تستخدم ملف # # الذي تتم مشاركته مع أي شخص آخر غير المستخدم. يمكنك # # استخدام ملفات مفاتيح متعددة ، والمفاتيح هي "rsa1" # # لبروتوكول ssh1 و "dsa" / "rsa" لبروتوكول ssh2. # # # HostKey / etc / ssh / ssh_host_rsa_key HostKey / etc / ssh / ssh_host_dsa_key # # خيارات الإصدار 1 من بروتوكول SSH (ssh1) # # لا يُنصح بشدة باستخدام بروتوكول ssh1. # # بروتوكول ssh2 أكثر أمانًا من ssh1 # # # KeyRegenerationInterval # # # # بالنسبة لبروتوكول ssh1 ، يتم إنشاء مفتاح خادم مؤقت جديد # # تلقائيًا مرة واحدة في وقت معين # # (إذا تم استخدام واحد). يتم ذلك # # لمنع فك تشفير الجلسات المختطفة ، من أجل # # تسجيل الدخول لاحقًا إلى الجهاز باستخدام معلمات هذه الجلسات و # # سرقة المفاتيح. لم يتم تخزين هذا المفتاح في أي مكان (مخزن في # # RAM). يحدد هذا التوجيه # # lifetime للمفتاح في ثوانٍ وبعدها سيتم # # إعادة إنشائه. إذا تم تعيين القيمة على 0 - # # فلن يتم إعادة إنشاء المفتاح. # # القيمة الافتراضية هي 3600 (ثانية). # # # KeyRegenerationInterval 3600 # # RhostsRSAAuthentication # # # # يحدد ما إذا كانت المصادقة مطلوبة بناءً على # # rhosts أو ملفات /etc/hosts.equiv ، إلى جانب مصادقة مضيف # # RSA الناجحة. # # ذات صلة فقط ببروتوكول ssh1. # # الافتراضي هو "لا". # # # RhostsRSAAuthentication no # # RSAAuthentication # # # # يشير إلى ما إذا كان يُسمح بمصادقة RSA الأولية. # # ذات صلة فقط ببروتوكول ssh1. # # الافتراضي هو "نعم". # # # RSAAuthentication yes # # ServerKeyBits # # # # يحدد عدد البتات في المفتاح المؤقت للخادم لـ # # بروتوكول ssh1. القيمة الدنيا هي 512. # # القيمة الافتراضية هي 1024. # ServerKeyBits 768 # # # خيارات بروتوكول SSH الإصدار 2 (ssh2) # # Ciphers # # # # تحدد خوارزميات التشفير المسموح بها لبروتوكول # # بروتوكول ssh2. يجب أن تكون الخوارزميات المتعددة # # مفصولة بفواصل. الخوارزميات المدعومة: # # "3des-cbc" ، "aes128-cbc" ، "aes192-cbc" ، "aes256-cbc" ، # # "aes128-ctr" ، "aes192-ctr" ، "aes256-ctr" ، " arcfour128 "، # #" arcfour256 "،" arcfour "،" السمكة المنتفخة-cbc "،" cast128-cbc ". # # الافتراضيات هي: # # aes128-cbc ، 3des-cbc ، السمكة المنتفخة ، cbc ، cast128-cbc ، arcfour128 ، # # arcfour256 ، arcfour ، aes192-cbc ، aes256-cbc ، aes128-ctr ، # # aes192-ctr ، aes256 -ctr # # # HostbasedAuthentication # # # # يشير إلى ما إذا كانت المصادقة المستندة إلى المضيف # # مسموح بها. تحقق من rhosts أو /etc/hosts.equiv ، # # وإذا نجحت ، جنبًا إلى جنب مع التحقق الناجح # # من المفتاح العام ، يتم منح الوصول. هذا التوجيه هو # # نفس توجيه RhostsRSAAuthentication و # # ينطبق فقط على بروتوكول ssh2. # # الافتراضي هو "لا". # # # HostbasedAuthentication no # # MACs # # # يحدد خوارزمية MAC صالحة (message # # رمز المصادقة). تستخدم خوارزمية MAC # # بواسطة بروتوكول ssh2 لحماية تكامل البيانات. يجب فصل خوارزميات # # المتعددة بفاصلات. # # الافتراضيات هي: # # hmac-md5 ، hmac-sha1 ، [بريد إلكتروني محمي] ، hmac-ripemd160، # # hmac-sha1-96، hmac-md5-96 # # # PubkeyAuthentication # # # يشير إلى ما إذا كان يُسمح بمصادقة المفتاح العام # #. ذو صلة فقط ببروتوكول ssh2. # # الافتراضي هو "نعم". # # # PubkeyAuthentication yes خيارات GSSAPI # # ينطبق على بروتوكول ssh2 فقط # # # GSSAPIAuthentication # # يحدد ما إذا كانت مصادقة المستخدم المستندة إلى GSSAPI مسموح بها # #. الافتراضي هو "لا" ، أي محظور. # # # GSSAPIKeyExchange # # # # يحدد ما إذا كان تبادل المفاتيح على أساس # # GSSAPI مسموحًا به. لا يعتمد تبادل مفاتيح GSSAPI على مفاتيح # # ssh للتحقق من هوية المضيف. # # الافتراضي هو "لا" - أي التبادل محظور. # # # GSSAPICleanupCredentials # # # يحدد ما إذا كان سيتم تدمير # # ذاكرة التخزين المؤقت لبيانات اعتماد المستخدم تلقائيًا عند # # انتهاء الجلسة. # # الافتراضي هو "نعم" - أي يجب تدميرها. # # # GSSAPIStrictAcceptorCheck # # # # يحدد مدى قوة التحقق من هوية العميل # # عند المصادقة عبر GSSAPI. # # تؤدي قيمة "نعم" إلى مصادقة العميل على # # خدمة المضيف المستقبلة على المضيف الحالي. تسمح القيمة "no" # # للعميل بالمصادقة باستخدام أي # # مفتاح خدمة. # # القيمة الافتراضية هي نعم". # # لاحظ أن تعيينه على "لا" قد يعمل فقط # مع مكتبات Kerberos GSSAPI النادرة. # # # # Kerberos Options # # # KerberosAuthentication # # # يحدد ما إذا كانت كلمة المرور المقدمة # # من قبل المستخدم للمصادقة # # (PasswordAuthentication) تتطلب التحقق من صحة في Kerberos KDC. # # لاستخدام هذا الخيار ، يحتاج الخادم # # للتحقق من صحة KDC. (يحتاج الخادم إلى # # Kerberos servtab الذي يسمح بالتحقق من هوية # # KDC) # # الافتراضي هو "لا". # # # KerberosGetAFSToken # # # # إذا تم تمكين AFS وتلقى المستخدم Kerberos 5 TGT ، # # ما إذا كان سيحاول الحصول على رمز AFS قبل أن يتمكن المستخدم # # من الوصول إلى المجلد الرئيسي. # # الافتراضي هو "لا". # # # KerberosOrLocalPasswd # # # # يحدد ما يجب فعله إذا فشلت المصادقة # # عبر Kerberos. إذا كانت # # القيمة "نعم" ، فسيتم التحقق من كلمة المرور باستخدام # # أي آلية تفويض محلية إضافية ، # # على سبيل المثال - / etc / passwd. # # الافتراضي هو "نعم". # # # KerberosTicketCleanup # # # # يحدد ما إذا كان سيتم إتلاف ملف ذاكرة التخزين المؤقت للتذكرة # # للمستخدم تلقائيًا عند انتهاء الجلسة. # # الافتراضي هو "نعم". # # # # خيارات إعادة التوجيه # # AllowAgentForwarding # # # يحدد ما إذا كان سيتم السماح أو رفض إعادة التوجيه # # ssh-agent. الافتراضي هو "نعم" ، أي السماح. سيزيد من الأمان حتى يتم رفض وصول المستخدمين أيضًا # # كما يمكنهم # # تثبيت نظرائهم من الوكلاء # # # AllowTcpForwarding # # # يحدد ما إذا كان سيتم السماح أو رفض إعادة توجيه TCP # # الافتراضي هو "نعم ، تجدر الإشارة إلى # # أنه ، كما هو الحال مع AllowAgentForwarding ، لن يؤدي تعطيل إعادة التوجيه # # إلى تحسين الأمان طالما # # يمتلك المستخدمون حق الوصول إلى وحدة التحكم ، حيث يمكنهم # # تثبيت نظرائهم. # # # # # GatewayPorts # # # يحدد ما إذا كان سيتم السماح للمضيفين البعيدين # # الوصول إلى المنافذ المعاد توجيهها افتراضيًا ، sshd يستمع فقط # # للاتصالات إلى المنافذ المعاد توجيهها على واجهة # # المحلية (استرجاع) وهذا يمنع المضيفين البعيدين # # podsoye الاتصال بالمنافذ المعاد توجيهها. يمكنك # # استخدام GatewayPorts للسماح لـ sshd # # القيام بذلك. يمكن أن يأخذ التوجيه 3 قيم: # # "no" - استرجاع فقط. # # "نعم" - أي عناوين. # # "customerspecified" - العناوين المحددة من قبل العميل. # # # PermitOpen # # # يحدد مكان السماح بإعادة توجيه منفذ TCP. # # يجب أن يأخذ تلميح إعادة التوجيه أحد # # الأشكال التالية: # # PermitOpen host: port # # PermitOpen IPv4_addr: port # # PermitOpen: port # # يمكن تحديد إدخالات متعددة عن طريق فصلها بمسافات. # # يمكن استخدام الوسيطة "أي" لإزالة جميع قيود إعادة توجيه المنفذ # #. افتراضيًا ، يُسمح بأي # # إعادة توجيه. # # # PermitTunnel # # # يشير إلى ما إذا كان يُسمح بإعادة توجيه الجهاز النفقي. # # يمكن الضبط على: # # "نعم" # # "نقطة إلى نقطة" (طبقة الشبكة الثالثة) # # "إيثرنت" (طبقة الشبكة الثانية) # # "لا" # # القيمة "نعم" تسمح لكليهما " نقطة إلى نقطة "# # و" إيثرنت "في نفس الوقت. الافتراضي هو "لا". # # # خيارات التسجيل # # SyslogFacility # # # يحدد رمز كائن السجل لكتابة الرسائل إلى # # سجل النظام من sshd. القيم المحتملة: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # الافتراضي هو AUTH. # # # SyslogFacility AUTH # # LogLevel # # # يضبط مستوى الإسهاب لسجل sshd. # # الخيارات هي: # # SILENT # # QUIET # # FATAL # # ERROR # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # الافتراضي هو INFO. # # DEBUG و DEBUG1 متكافئان. حدد # # DEBUG2 و DEBUG3 أعلى مستويات إخراج التصحيح # #. يهدد التسجيل على مستوى DEBUG # # خصوصية المستخدم ولا يوصى به. # # # معلومات مستوى السجل # # # X11 إعادة التوجيه # # X11Forwarding # # # # يشير إلى ما إذا تم تمكين إعادة توجيه النظام الفرعي للرسومات X11 # #. يمكن أن تأخذ القيم "نعم" أو "لا". # # الافتراضي هو "لا". # # تحذير - تمكين إعادة توجيه X11 بسيط هو # # مخاطرة كبيرة لكل من الخادم والعملاء ، مثل في # # إعادة التوجيه هذه ، فإن عرض وكيل sshd # # يقبل الاتصالات من أي عنوان. # # استخدم توجيه X11UseLocalhost لتقييد الوصول إلى # # خادم إعادة التوجيه X. تجدر الإشارة إلى أن # # تعطيل إعادة التوجيه لن يضمن أن # # المستخدمين لن يتمكنوا من إعادة توجيه X11 ، لأن بعد # # وصول إلى وحدة التحكم ، قاموا دائمًا بتعيين معيد التوجيه # # الخاص بهم. سيتم تعطيل إعادة توجيه X11 # # تلقائيًا إذا تم استخدام التوجيه UseLogin # #. # # # X11Forwarding yes # # X11UseLocalhost # # # # يحدد ما إذا كان يجب على sshd تحديد # # نطاق إعادة توجيه X11 إلى عنوان الاسترجاع المحلي ، أو # # السماح بأي عناوين. بشكل افتراضي ، sshd # # "يهبط" خادم إعادة التوجيه X11 على العنوان المحلي # # ويعين جزء اسم المضيف من متغير بيئة DISPLAY # # إلى "localhost". لاحظ أن # # قد لا يعمل بعض عملاء X11 الأقدم مع # # هذه الإعدادات. الافتراضي هو "نعم" ، أي إعادة التوجيه # # تقتصر على المضيف المحلي ، والقيمة هي "لا" - تعطيل # # القيود. # # # XAuthLocation # # # # يحدد المسار الكامل لبرنامج xauth. # # الافتراضي هو / usr / bin / X11 / xauth. # # # X11DisplayOffset # # # يحدد رقم العرض الأول المتاح لـ sshd في # # كإعادة توجيه X11. يتم ذلك حتى # # بحيث لا تتداخل x المعاد توجيهها مع # # الحقيقية. الافتراضي هو 10. # # # X11DisplayOffset 10 # # # خيارات متنوعة # # LoginGraceTime # # # الوقت الذي يقوم الخادم بعده # # بقطع اتصال مستخدم إذا فشل في # # تسجيل الدخول بشكل مرض. القيمة 0 - تسمح للمستخدم # # بتسجيل الدخول إلى أجل غير مسمى. الافتراضي هو 120 (ثانية). # # # LoginGraceTime 120 # # MaxAuthTries # # # يحدد الحد الأقصى لعدد محاولات المصادقة # # المسموح بها لكل اتصال. # # بمجرد أن يتجاوز عدد المحاولات الفاشلة # # نصف القيمة المحددة ، سيتم تسجيل جميع المحاولات اللاحقة # #. القيمة الافتراضية هي 6. # # # MaxSessions # # # # تحدد الحد الأقصى لعدد الاتصالات المتزامنة # # لكل اتصال شبكة. الافتراضي هو 10. # # # MaxStartups # # # # يحدد الحد الأقصى لعدد الاتصالات المتزامنة # # غير المصرح بها إلى sshd. في حالة # # تجاوز عدد الاتصالات الحد - سيتم إسقاط جميع الاتصالات # # الإضافية حتى تكتمل الاتصالات # # الحالية إما عن طريق التفويض الناجح ، أو # # أو بانتهاء صلاحية الفترة الزمنية المحددة في التوجيه # # LoginGraceTime . القيمة الافتراضية هي 10. # # اختياريًا ، يمكنك تعيين الاتصالات للإفلات مبكرًا بواسطة # # تحديد ثلاث قيم مفصولة # # بنقطتين "start: rate: full" (على سبيل المثال: "10:30:60"). # # sshd سيرفض محاولة الاتصال باحتمالية # # "rate / 100" (أي 30٪ في مثالنا) إذا كان # # هناك بالفعل "بدء" (10) اتصالات غير مصرح بها. # # يزداد الاحتمال خطيًا وسيتم رفض أي # # محاولات اتصال إذا وصل عدد الاتصالات غير المصرح بها # # إلى "كامل" (60). # # # Compression # # # # يشير إلى ما إذا كان ضغط البيانات ممكّنًا. يمكن أن تكون # # "نعم" - تم تفعيل الضغط. # # "مؤجل" - يتأخر الضغط حتى # # تتم مصادقة المستخدم بنجاح. # # "لا" - الضغط معطل. # # الافتراضي هو "تأخير". # # # UseLogin # # # يشير إلى ما إذا كان يجب استخدام تسجيل الدخول لـ # # جلسة تفاعلية. القيمة الافتراضية هي لا". # # تجدر الإشارة إلى أن تسجيل الدخول لم يتم استخدامه مطلقًا # # لتنفيذ الأوامر عن بُعد. لاحظ أيضًا أن # # باستخدام تسجيل الدخول سيؤدي إلى تعطيل التوجيه # # X11Forwarding لأن تسجيل الدخول لا يعرف # # ما يجب فعله باستخدام xauth. إذا تم تمكين التوجيه # # UsePrivilegeSeparation - فسيتم تعطيله بعد التفويض # #. # # # UsePrivilegeSeparation # # # يحدد ما إذا كان يجب على sshd فصل الامتيازات. إذا كانت الإجابة بنعم # # ، فسيتم إنشاء عملية فرعية بدون امتياز # # أولاً لحركة مرور الشبكة الواردة. بعد التفويض الناجح ، # # سيتم إنشاء عملية أخرى بامتيازات # # للمستخدم الذي قام بتسجيل الدخول. # # # الغرض الأساسي من مشاركة الامتيازات هو منع التجاوزات. # # القيمة الافتراضية هي نعم". # # # UsePrivilegeSeparation yes # # StrictModes # # # # يحدد ما إذا كان يجب على sshd التحقق من أوضاع الوصول و # # ملكية مجلدات المستخدم والملفات قبل # # السماح للمستخدم بتسجيل الدخول. هذا عادة لأن # # مبتدئين يجعلون ملفاتهم قابلة للكتابة # من قبل الجميع. الافتراضي هو "نعم". # # # StrictModes yes # # AcceptEnv # # # # يشير إلى متغيرات البيئة التي تم تمريرها # # من قبل العميل سيتم قبولها. راجع خيار SendEnv في العميل. # # لاحظ أن تمرير المتغيرات ممكن فقط # # لبروتوكول ssh2. يتم تحديد المتغيرات بالاسم ، ويمكن استخدام # # wildcards ("*" و "؟"). يمكنك تحديد # # متغيرات متعددة مفصولة بمسافات ، أو # # فصل أسطر متعددة من AcceptEnv. كن حذرًا - يمكن استخدام بعض متغيرات البيئة # # لتجاوز # # بيئات المستخدم المحظورة. # # استخدم هذا التوجيه بعناية. بشكل افتراضي ، لا يتم قبول أي متغيرات بيئة مخصصة # #. # # # AcceptEnv LANG LC_ * # # PermitUserEnvironment # # # # يحدد ما إذا كان sshd يجب # # قبول ~ / .ssh / environment و environment = option in # # ~ / .ssh / author_keys. الافتراضي هو "لا". تجدر الإشارة إلى أن تمكين معالجة البيئة يمكن أن يمنح المستخدمين القدرة على تجاوز القيود في بعض التكوينات # # باستخدام آليات مثل # # LD_PRELOAD. # # # # # PidFile # # # # يحدد الملف الذي يحتوي على معرف العملية # # (معرف العملية ، PID) لعفريت SSH. # # الافتراضي هو /var/run/sshd.pid # # # # # PrintLastLog # # # يحدد ما إذا كان يجب على sshd طباعة التاريخ والوقت # # للجلسة الأخيرة عند تسجيل دخول المستخدم التفاعلي. # # الافتراضي هو "نعم". # # # PrintLastLog yes # # PrintMotd # # # # يحدد ما إذا كان يجب على sshd طباعة / etc / motd # # عندما يقوم المستخدم بتسجيل الدخول بشكل تفاعلي. في بعض الأنظمة # # (مثل Ubuntu) ، يتم عرض هذه المعلومات أيضًا # # بواسطة shell. # # القيمة الافتراضية هي نعم". # # # PrintMotd no # # Banner # # # يحدد الملف الذي يحتوي على شعار النص # # الذي سيظهر للمستخدم قبل إجراء المصادقة # #. الخيار متاح فقط لبروتوكول ssh2 # # افتراضي - لا يظهر أي شيء. # # في Ubuntu ، يحتوي الملف issue.net على عبارة Ubuntu (الإصدار) ، # # على سبيل المثال لـ karmic هو "Ubuntu 9.10". يمكن استخدام # # لإرباك المهاجمين المحتملين عن طريق # # الكتابة هناك على سبيل المثال "My D-Link Interet Router" =) # # # Banner /etc/issue.net # # ChrootDirectory # # # # إذا تم تحديده ، يوفر مسارًا إلى # # تجذر بعد المصادقة. يجب أن يتوافق المسار وجميع محتوياته # # مع المجلدات # # التي يملكها المستخدم المتميز وليست قابلة للكتابة # من قبل المستخدمين الآخرين. # # قد يحتوي المسار على تسميات تم استبدالها في # # عملية المصادقة: # # ٪٪ - تم استبداله بـ "٪" # #٪ h - تم استبداله بالدليل الرئيسي # # للمستخدم الذي تتم مصادقته # #٪ u - استبداله باسم المستخدم الجاري مصادقته # # chroot - يجب أن يحتوي المجلد على جميع الملفات الضرورية و # # مجلدات لجلسة المستخدم. تحتاج جلسة # # التفاعلية على الأقل: # # a shell ، عادةً ما تكون sh # # الأجهزة الأساسية في / dev ، مثل: # # null ، و zero ، و stdin ، و stdout ، و stderr ، و arandom ، و tty # # لجلسة نقل البيانات باستخدام sftp # # ليست هناك حاجة إلى تكوين إضافي إذا تم استخدام # # عملية sftp الداخلية للخادم. انظر النظام الفرعي # # لمزيد من المعلومات. بشكل افتراضي ، لا يتم تنفيذ الكروت. # # # ForceCommand # # # يتسبب في تنفيذ الأمر المحدد. يتجاهل # # أي أوامر مقدمة من العميل أو مكتوبة إلى # # ~ / .ssh / rc. يتم استدعاء الأمر من shell # # للمستخدم مع الخيار -c. مناسبة لتشغيل قذيفة ، # # أمر أو نظام فرعي. الأكثر فائدة داخل كتلة # # Match. يتم تخزين الأمر الذي أرسله العميل في الأصل # # في متغير البيئة SSH_ORIGINAL_COMMAND. إذا تم تحديد # # الأمر "internal-sftp" ، فسيتم بدء # # خادم sftp داخلي ، والذي لا يحتاج إلى # # الملفات والمجلدات الإضافية الموضحة في توجيه ChrootDirectory. # # # النظام الفرعي # # # # يحدد ويكوِّن نظامًا فرعيًا خارجيًا (على سبيل المثال # # البرنامج الخفي لنقل الملفات). # # الوسيطات هي الاسم والأمر (مع # # وسيطات محتملة) التي سيتم تنفيذها أثناء الاستعلام # # على الأنظمة الفرعية. يبدأ الأمر sftp-server النظام الفرعي لنقل الملفات "sftp" # #. اختياريا ، يمكنك # # تحديد “Internal-sftp” كنظام فرعي ، والذي سيبدأ # # خادم sftp داخلي. هذا يمكن أن يبسط بشكل كبير # # التكوين عند استخدام التوجيه # # ChrootDirectory بشكل افتراضي ، لا يتم استدعاء أي أنظمة فرعية # #. ذو صلة فقط ببروتوكول ssh2. # # # النظام الفرعي sftp / usr / lib / openssh / sftp-server # # # Match block # # # # تم نقله بشكل خاص إلى نهاية الملف لتسهيل # # كتابة قواعد المطابقة. # # مادكوكس. # # # # توجيه المطابقة هو بداية كتلة # # مشروطة. إذا تم استيفاء جميع المعايير المحددة في # # سطر المطابقة ، يتم تنفيذ التوجيهات الموجودة على الأسطر اللاحقة من الكتلة ، # # مما يسمح لك بتجاوز قيم التوجيهات العامة # # في sshd_config للحالة التي # # مطابقة التوجيه معايير. الكتلة هي جميع الأسطر التي تلي السطر # # مع المعيار (تطابق - الأسطر) حتى سطر المطابقة التالي # # أو حتى نهاية الملف. وسيطة الأمر Match هي زوج واحد أو # أكثر من أزواج إدخالات المعايير. أنواع السجلات المحتملة هي: # # User # # Group # # Host # # Address # # يمكن أن تحتوي السجلات على قيم فردية # # (على سبيل المثال ، المستخدم = المستخدم) أو قيم متعددة # # مفصولة بفواصل (المستخدم = user1 ، user2 ). # # التعبيرات العادية الموضحة في # # يمكن أيضًا استخدام قسم PATTERNS في ملف ssh_config. يمكن أن تحتوي الإدخالات في # # معايير العنوان على عناوين في تدوين CIDR # # (طول العنوان / القناع ، على سبيل المثال "192.0.2.0/24" أو # # "3ffe: ffff :: / 32"). تجدر الإشارة إلى أن طول القناع المقدم # # يجب أن يتطابق مع العنوان ، ولن يعمل # # طويل / قصير جدًا للعنوان. # # Match يمكن فقط استخدام مجموعة محددة من التوجيهات # #: # # AllowTcpForwarding # # Banner # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # HostbasedAuthentication # # KbdInteractiveAuthentication # # KerberosAuthentication # # MaxAuthentication # # KerberosAuthentication # # MaxAuthentication # # # PermitOpen # # PermitRootLogin # # RhostsRSAAuthentication # # RSAAuthentication # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

يمكنك نسخ النص أعلاه إلى sshd_config الخاص بك واستخدامه لاحقًا للتكوين.

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

المنفذ ، والاستماع ، والعنوان ، والعنوان

تحدد هذه الخيارات الثلاثة المنافذ والعناوين التي سيستمع خادمك إليها للاتصالات الواردة. أولاً ، من المنطقي ، إن أمكن ، قصر عائلة العناوين المعالجة على تلك المستخدمة بالفعل ، أي إذا كنت تستخدم IPv4 فقط ، فقم بتعطيل IPv6 والعكس صحيح. يمكن القيام بذلك باستخدام المعلمة AddressFamily ، على سبيل المثال (للسماح IPv4 ورفض IPv6):

العنوان

ثانيًا ، من المستحسن تغيير المنفذ القياسي (22) الذي يستمع إليه sshd. ويرجع ذلك إلى حقيقة أن العديد من الماسحات الضوئية للشبكة تحاول باستمرار الاتصال بالمنفذ 22 والحصول على وصول على الأقل عن طريق تعداد عمليات تسجيل الدخول / كلمات المرور من قاعدة البيانات الخاصة بهم. حتى إذا تم تعطيل مصادقة كلمة المرور ، فإن هذه المحاولات تسد السجلات ويمكن (بأعداد كبيرة) أن تؤثر سلبًا على سرعة خادم ssh. إذا كنت لا ترغب في تغيير المنفذ القياسي لسبب ما ، فيمكنك استخدام أدوات مساعدة خارجية متنوعة لمكافحة القوة الغاشمة ، مثل fail2ban ، أو الأدوات المدمجة ، مثل MaxStartups.
يمكنك تعيين المنفذ كقيمة مطلقة لجميع الواجهات باستخدام توجيه المنفذ ، أو كقيمة محددة لكل واجهة باستخدام التوجيه ListenAddress. على سبيل المثال:

المنفذ 2002

ListenAddress 192.168.0.1:2003 عنوان الاستماع 192.168.1.1:2004

تعطيل الوصول عن بعد للمستخدم المتميز

بشكل افتراضي ، يتم رفض الوصول إلى الجذر بكلمة مرور (بالمفتاح - يمكنك ذلك) - يتم تعيين خيار PermitRootLogin على بدون كلمة مرور. ولكن ، نظرًا لأنه افتراضيًا في Ubuntu ، فإن المستخدم الذي تمت إضافته أثناء تثبيت النظام لديه القدرة على أداء جميع المهام الإدارية من خلال sudo ، مما يجعل القدرة على الوصول إلى الجذر للنظام من خلال ssh تبدو غير معقولة (حتى مع مصادقة المفتاح). يوصى بإيقاف تشغيله تمامًا. هذا الخيار ، أو تطبيقه فقط في وضع الأوامر القسرية فقط. يمكنك تعطيل الوصول إلى الجذر مثل هذا:

PermitRootLogin لا

مصادقة كلمة المرور

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

كلمة المرور

إذا كنت لا تزال تريد استخدام مصادقة كلمة المرور لسبب ما - فتأكد من عدم تمكن أي شخص من تسجيل الدخول بكلمة مرور فارغة. للقيام بذلك ، قم بتعيين التوجيه PermitEmptyPasswords:

PermitEmptyPasswords لا

بروتوكولات SSH1 و SSH2

كما ذكرنا سابقًا ، يمكن أن يعمل sshd مع بروتوكولات SSH1 و SSH2. ومع ذلك ، لا يُنصح بشدة باستخدام SSH1 غير الآمن. يمكنك إجبار sshd على العمل فقط مع بروتوكول SSH2 مثل هذا:

مصادقة مفتاح SSH2 RSA

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

PubkeyAuthentication نعم

يحتاج الخادم إلى معرفة المكان الذي يجب أن يبحث فيه عن المفتاح العام للمستخدم. يتم استخدام ملف Author_keys خاص لهذا الغرض. يمكن أن يكون تركيبها كما يلي:

# التعليقات مكتوبة فقط على سطر جديد # شكل عام للإدخالات في ملف author_keys # [options] key_type (ssh-rsa أو ssh-dss) very_long_string_incomprehensible_to_a_ordinary_person [تسجيل الدخول @ host] ssh-rsa AAAAB3Nza ... LiPk == [بريد إلكتروني محمي] from = "*. sales.example.net،! pc.sales.example.net" ssh-rsa AAAAB2 ... 19Q == [بريد إلكتروني محمي] command = "dump / home"، no-pty، no-port-forwarding ssh-dss AAAAC3 ... 51R == example.net allowopen = "192.0.2.1:80"، allowopen = "192.0.2.2:25" ssh -dss AAAAB5 ... 21S == نفق = "0" ، الأمر = "sh / etc / netstart tun0" ssh-rsa AAAA ... == [بريد إلكتروني محمي]

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

AuthorizedKeysFile٪ h / .ssh / my_keys

لمخطط المستخدم - ملف
أو

AuthorizedKeysFile / etc / ssh / authorized_keys

لمخطط مع ملف مشترك. بشكل افتراضي ، يبحث عميل SSH عن المفاتيح في ~ / .ssh / author_keys.

المزيد عن الأمن

إعدادات إضافية

المستخدمون والمجموعات.

إذا كان لديك الكثير من المستخدمين "الذين يعيشون" على الخادم ، وتريد السماح لعدد قليل منهم فقط بالوصول عبر ssh ، فيمكنك استخدام توجيهات DenyUsers و AllowUsers و DenyGroups و AllowGroups. راجع التعليقات في مثال sshd_config لمزيد من التفاصيل حول هذه التوجيهات.

خيارات حالة الاتصال

بشكل افتراضي ، يتم تضمين فقط طريقة فحص اتصال TCP ، TCPKeepAlive ، من طرق اكتشاف حالة الاتصال ، ومع ذلك ، يمكن لـ sshd تحديد حالات الاتصال بطرق أكثر ملاءمة وأمانًا. راجع القسم ذي الصلة في مثال sshd_config للحصول على التفاصيل.

أداء. ماكس ستارتوبس

ميناء الشحن

إعادة توجيه X11

على الخادم ، في الملف / etc / ssh / sshd_config ، اضبط المعلمة (ممكّنة افتراضيًا):

ForwardX11 نعم

على العميل ، في الملف / etc / ssh / ssh_config ، اضبط المعلمات التالية (معطلة افتراضيًا):

ForwardAgent نعم ForwardX11 نعم

يمكنك تشغيله على العميل مثل هذا ssh [بريد إلكتروني محمي]ثعلب النار. أو نذهب أولاً ssh [بريد إلكتروني محمي]ثم تشغيل ، على سبيل المثال sudo متشابك.

SFTP

يحتوي sshd على خادم SFTP مدمج افتراضيًا. SFTP (بروتوكول نقل الملفات SSH) - بروتوكول SSH لنقل الملفات. إنه مصمم لنسخ عمليات الملفات الأخرى وتنفيذها عبر اتصال موثوق وآمن. كقاعدة عامة ، يتم استخدام بروتوكول SSH2 كبروتوكول أساسي يوفر الاتصال. لتمكين دعم SFTP ، أضف السطر إلى sshd_config

النظام الفرعي sftp / usr / lib / openssh / sftp-server

افتراضيًا ، يتم تمكين دعم SFTP.

استخدام المعايير. توجيه المباراة

إعداد عميل SSH

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

ssh-keygen -t rsa

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

ssh-copy-id -i ~ / .ssh / id_rsa.pub [بريد إلكتروني محمي]الخادم

كل شيء ، يمكنك الدخول.

عند تشغيل ssh على منفذ غير قياسي:

ssh-copy-id -i ~ / .ssh / id_rsa.pub "-p port [بريد إلكتروني محمي]"

في حالة حدوث خطأ: منفذ غير صالح "umask 077 ؛ test -d .ssh || mkdir .ssh؛ cat >> .ssh / author_keys"

حاول وضع المعلمات بين علامات الاقتباس:

ssh- نسخة- معرف "-i /home/user/.ssh/id_rsa.pub" منفذ p [بريد إلكتروني محمي]""

من الملائم استخدام أداة الشاشة عند الاتصال بنظام بعيد.

إعداد دليل ssh بعيد في Nautilus

تركيب دليل بعيد مع sshfs

تحميل دليل بعيد إلى دليل محلي

sshfs [بريد إلكتروني محمي] hostingserver.ru:/ home / userdir ~ / sshfsdir

قم بإلغاء التثبيت

Fusermount -u ~ / sshsfdir

الأسماء المستعارة لـ SSH

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

يتم تخزين الإعدادات في ~ / .ssh / config لمستخدم واحد وفي / etc / ssh / ssh_config عالميًا لجميع المستخدمين.

مثال على التكوين. يمكن وصف مجموعة من الخوادم. اقرأ المزيد في رجل ssh_config(لا ينبغي الخلط بينه وبين sshd_config)

Host AliasName # Arbitrary hostname HostName 1.2.3.4 # يمكنك تحديد IP واسم المضيف (إذا كان DNS يعمل) المستخدم YourUserName # إذا كان المستخدم لا يتطابق مع المستخدم المحلي المنفذ YourSSHPort # إذا كان منفذًا غير قياسي

بعد ذلك ، يمكنك الاتصال بالخادم باستخدام الأمر

ssh الاسم المستعار

وكيل ssh

تشخيص مشاكل الاتصال

    تحليل سجل الاتصال:

ssh-vvv [بريد إلكتروني محمي]استضافة

    تحليل ملفات تكوين العميل والخادم.

يمكن العثور على موقع ملفات التكوين بتنسيق

رجل ssh man sshd

استخدام البطاقات الذكية

1. إنشاء شهادة وتصدير مفتاح عام ، بالإضافة إلى جزء العميل على Windows + Putty SC موصوف على الموقع: http://habrahabr.ru/post/88540/ تتوفر الوظيفة الإضافية Key Manager الموصوفة هناك فقط في الإصدارات القديمة من Firefox. تم اختباره في الإصدار 3.5 لنظام التشغيل Windows. رابط مباشر إلى الملحق: https://addons.mozilla.org/en/firefox/addon/key-manager/

2. إعداد الخادم. تحتاج إلى التأكد من أن تكوين sshd يسمح بالمصادقة باستخدام المفاتيح العامة. للقيام بذلك ، تحتاج إلى تحديد قيمة المعلمة "PubkeyAuthentication" في ملف "sshd_config" إلى "نعم". ثم نضيف المفتاح العمومي الذي حصلنا عليه سابقًا (في سطر واحد) إلى الملف "~ / .ssh / author_keys". يرجى ملاحظة أن ملف “.ssh / author_keys” موجود في الدليل الرئيسي للمستخدم الذي سيقوم بتسجيل الدخول باستخدام المفتاح العام.

3. جزء العميل في Linux. ستحتاج إلى إعادة بناء حزمة OpenSSH بدون خيارات. يوصى بتحديد بادئات الدليل فقط ، مثل --prefix = / usr. لاحظ أيضًا أن ملفات التكوين ستكون في / usr / etc. قبل البدء ، هناك حاجة إلى حزم: opensc-lite-devel ، zlib-devel ، openssl-devel. قم بتثبيت برنامج تشغيل البطاقة الذكية. للراحة ، في تكوين ssh_config (يجب عدم الخلط بينه وبين sshd_config) حدد المسار إلى مكتبة pkcs: PKCS11Provider =<путь к библиотеке>

4. قم بتشغيل ssh على العميل [بريد إلكتروني محمي]إذا تم توصيل بطاقة ذكية (رمز مميز) ، فسيتم طلب كلمة مرور وسيتم تسجيل الدخول إلى جلسة SSH.

المشاكل المحتملة عند الاستخدام

تركيبة المفاتيح المعتادة Ctrl + S ، المستخدمة في العديد من المحررين لحفظ التصحيحات ، عند العمل في محطة طرفية مع خادم ssh ، ستؤدي إلى تنفيذ أمر XOFF ، والذي يبدو وكأنه توقف الجلسة. ومع ذلك ، فهي ليست كذلك. يستمر الخادم في قبول أحرف الإدخال والأوامر ، لكنه لا يعرضها على الشاشة. للخروج من هذا المأزق ، يكفي استخدام تركيبة Ctrl + Q ، وبالتالي إعادة تشغيل وضع XON.

الروابط

أي أنه يمكن تسجيل user1 لنفسه - في الملف / home/user1/.ssh/keys) ولمستخدم آخر ، مما سيسمح له بتسجيل الدخول من جهاز الكمبيوتر الخاص به "تحت نفسه" وتحت "آخر"