Skip to main content

كل شيء عن لينكس / قيادة يونكس: sshd

SSH, FTP, Ping, Telnet: Linux Networking Commands Tutorial 12 (قد 2025)

SSH, FTP, Ping, Telnet: Linux Networking Commands Tutorial 12 (قد 2025)
Anonim

اسم

سشد - OpenSSH SSH daemon

ملخص

سشد -deiqtD46 -ب بت -F ملف التكوين -ز login_grace_time -ح host_key_file -ك key_gen_time -س اختيار -ص ميناء -ش ليون

وصف

سشد (SSH Daemon) هو البرنامج الخفي لـ ssh (1). معا تستبدل هذه البرامج غير أمن و RSHتوفير اتصالات مشفرة آمنة بين مضيفين غير موثوقين عبر شبكة غير آمنة. تهدف البرامج إلى أن تكون سهلة التركيب والاستخدام قدر الإمكان.

سشد هو البرنامج الخفي الذي يستمع للوصلات من العملاء. يتم تشغيله عادةً عند التمهيد من / etc / rc. إنه يعمل على تشغيل خفي جديد لكل اتصال وارد. تتعامل الدايمونات المتقاطعة مع مفاتيح تبادل المفاتيح والتشفير والتوثيق وتنفيذ الأوامر وتبادل البيانات. هذا التنفيذ منسشد يدعم كل من بروتوكول SSH الإصدار 1 و 2 في وقت واحد.

بروتوكول SSH الإصدار 1

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

كلما كان العميل يربط الخفي يستجيب مع المضيف العام ومفاتيح الخادم. يقارن العميل مفتاح المضيف RSA مقابل قاعدة البيانات الخاصة به للتحقق من أنه لم يتغير. العميل ثم ينشئ رقم عشوائي 256 بت. يقوم بتشفير هذا الرقم العشوائي باستخدام كل من مفتاح المضيف ومفتاح الخادم ويرسل الرقم المشفر إلى الخادم. ثم يستخدم كلا الجانبين هذا الرقم العشوائي كمفتاح جلسة والذي يتم استخدامه لتشفير كافة الاتصالات الأخرى في الجلسة. يتم تشفير بقية الجلسة باستخدام تشفير تقليدي ، حاليًا Blowfish أو 3DES ، مع استخدام 3DES افتراضيًا. يحدد العميل خوارزمية التشفير لاستخدامها من تلك التي يقدمها الخادم.

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

عادةً يتم تعطيل مصادقة Rhosts لأنه غير آمن بشكل أساسي ، ولكن يمكن تمكينه في ملف تكوين الخادم إذا رغبت في ذلك. لا يتم تحسين أمان النظام ما لمrshdrlogind ويتم تعطيل rexecd (وبالتالي تعطيل تماما rlogin و rsh في الجهاز).

بروتوكول SSH الإصدار 2

يعمل الإصدار 2 بشكل مشابه: لكل مضيف مفتاح خاص بالمضيف (RSA أو DSA) يستخدم لتحديد المضيف. ومع ذلك ، عند بدء daemon ، فإنه لا يقوم بإنشاء مفتاح خادم. يتم توفير الأمان الأمامي من خلال اتفاقية مفتاح Diffie-Hellman. وينتج عن هذه الاتفاقية الرئيسية مفتاح جلسة مشترك.

يتم تشفير بقية الجلسة باستخدام تشفير متماثل ، أو 128 بت AES حاليًا أو Blowfish أو 3DES أو CAST128 أو Arcfour أو 192 بت AES أو 256 بت AES. يحدد العميل خوارزمية التشفير لاستخدامها من تلك التي يقدمها الخادم. بالإضافة إلى ذلك ، يتم توفير سلامة جلسة العمل من خلال رمز مصادقة رسالة التشفير (hmac-sha1 أو hmac-md5).

يوفر بروتوكول الإصدار 2 مستخدمًا يستند إلى المفتاح العام (PubkeyAuthentication) أو طريقة مصادقة العميل (HostbasedAuthentication) ، ومصادقة كلمة المرور التقليدية ، وطرق الاستجابة المستندة إلى التحدي.

تنفيذ الأوامر وإعادة توجيه البيانات

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

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

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

سشد يمكن تكوينه باستخدام خيارات سطر الأوامر أو ملف التكوين. تتجاوز خيارات سطر الأوامر القيم المحددة في ملف التهيئة.

سشد يعيد قراءة ملف التكوين الخاص به عندما يتلقى إشارة تعليق ،تنفس الصعداء حتى من خلال تنفيذ نفسه بالاسم الذي بدأ به ، مثل ، / usr / sbin / sshd

الخيارات هي كما يلي:

بت

يحدد عدد وحدات البت في مفتاح خادم الإصدار 1 من البروتوكول المؤقت (المفترض 768).

وضع التصحيح. يرسل الملقم إخراج debbose verbose إلى سجل النظام ولا يضع نفسه في الخلفية. لن يعمل الخادم أيضًا وسيقوم بمعالجة اتصال واحد فقط. هذا الخيار مخصص فقط لتصحيح الأخطاء للملقم. تزيد الخيارات المتعددة -d مستوى تصحيح الأخطاء. الحد الأقصى هو 3.

-e

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

-F ملف الضبط

يحدد اسم ملف التكوين. الافتراضي هو / etc / ssh / sshd_configسشديرفض البدء إذا لم يكن هناك ملف التكوين.

-g login_grace_time

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

-h host_key_file

يحدد ملفًا يتم من خلاله قراءة مفتاح المضيف. يجب إعطاء هذا الخيار إذاسشد لا يتم تشغيله كجذر (مثل الملفات الرئيسية للمضيف العادي عادة لا يمكن قراءتها بواسطة أي شخص سوى الجذر). الافتراضي هو / etc / ssh / ssh_host_key لإصدار البروتوكول 1 ، و / etc / ssh / ssh_host_rsa_key و / etc / ssh / ssh_host_dsa_key لإصدار البروتوكول 2. من الممكن أن يكون لديك ملفات مفتاح مضيف متعددة لإصدارات البروتوكول المختلفة ومفتاح المضيف الخوارزميات.

-أنا

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

key_gen_time

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

-o اختيار

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

-p ميناء

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

-q

الوضع الهادئ. يتم إرسال أي شيء إلى سجل النظام. عادةً يتم تسجيل بداية كل اتصال وتوثيقه وإنهائه.

-t

وضع الاختبار. تحقق فقط من صحة ملف التكوين وعقلانية المفاتيح. هذا مفيد للتحديثسشد بشكل موثوق كما قد تتغير خيارات التكوين.

-u ليون

يستخدم هذا الخيار لتحديد حجم الحقل فيutmp هيكل يحمل اسم المضيف البعيد. إذا كان اسم المضيف الذي تم حلها أطول من ليون سيتم استخدام القيمة العشرية المنقط بدلاً من ذلك. يسمح ذلك للمضيفين الذين لديهم أسماء مضيفات طويلة جدًا تتجاوز هذا الحقل حتى يتم التعرف عليها بشكل فريد. تحديد -U0 يشير إلى أنه يجب وضع العناوين العشرية المنقطية فقط في ملف utmp. -U0 كما يمكن استخدامها لمنعسشد من تقديم طلبات DNS ما لم تتطلب آلية المصادقة أو التهيئة ذلك. تتضمن آليات المصادقة التي قد تتطلب DNSRhostsAuthenticationRhostsRSAAuthentication HostbasedAuthentication واستخداممن = نمط قائمةالخيار في ملف رئيسي. تشتمل خيارات التكوين التي تتطلب DNS على USER @ HOSTpattern inAllowUsers أوDenyUsers

عندما يتم تحديد هذا الخيارسشد لن تنفصل ولا تصبح خفي. هذا يسمح بمراقبة سهلةسشد

-4

القواتسشد لاستخدام عناوين IPv4 فقط.

-6

القواتسشد لاستخدام عناوين IPv6 فقط.

ملف الضبط

سشد يقرأ بيانات التكوين من / etc / ssh / sshd_config (أو الملف المحدد بـ -F على سطر الأوامر). يتم وصف تنسيق الملف وخيارات التكوين في sshd_config5.

عملية تسجيل الدخول

عندما يقوم مستخدم بتسجيل الدخول بنجاح ،سشد يقوم بما يلي:

  1. إذا كان تسجيل الدخول على tty ولم يتم تحديد أي أمر ، قم بطباعة آخر وقت لتسجيل الدخول و / etc / motd (ما لم يتم منعه في ملف التكوين أو بواسطة $ HOME / .hushlogin راجع قسم Sx FILES).
  2. إذا كان تسجيل الدخول على tty ، سجّل وقت تسجيل الدخول.
  3. الشيكات / الخ / nologin إذا كان موجودًا ، قم بطباعة المحتويات والإقالات (ما لم يكن الجذر).
  4. التغييرات للتشغيل مع امتيازات المستخدم العادية.
  5. يعين البيئة الأساسية.
  6. يقرأ $ HOME / .ssh / environment إذا كان موجودًا ويسمح للمستخدمين بتغيير بيئتهم. شاهدPermitUserEnvironment الخيار في sshd_config5.
  7. التغييرات على دليل المستخدم الرئيسي.
  8. في حالة وجود $ HOME / .ssh / rc ، يتم تشغيلها ؛ في حالة وجود / etc / ssh / sshrc ، يتم تشغيلها ؛ وإلا يدير xauth. يتم إعطاء ملفات `` rc '' بروتوكول المصادقة X11 وملف تعريف الارتباط في الإدخال القياسي.
  9. يشغل shell أو الأمر الخاص بالمستخدم.

تنسيق ملف Authorized_Keys

$ HOME / .ssh / authorized_keys هو الملف الافتراضي الذي يسرد المفاتيح العامة المسموح بها لمصادقة RSA في إصدار البروتوكول 1 ولمصادقة المفتاح العام (PubkeyAuthentication) في إصدار البروتوكول 2.AuthorizedKeysFile يمكن استخدامها لتحديد ملف بديل.

يحتوي كل سطر من الملف على مفتاح واحد (يتم تجاهل الأسطر الفارغة والخطوط التي تبدأ بـ '#' كتعليقات). يتكون كل مفتاح RSA العمومي من الحقول التالية ، مفصولة بمسافات: الخيارات ، البتات ، الأس ، المعامل ، التعليق. يتكون كل مفتاح عمومي من الإصدار الثاني من البروتوكول من: keytype ، keytype ، base64 keyoded ، comment. حقل الخيارات اختياري. يتم تحديد وجودها بواسطة ما إذا كان السطر يبدأ برقم أم لا (لا يبدأ حقل الخيارات مطلقًا برقم). تعطي الحقول bits و exponent و modulus والتعليق مفتاح RSA لإصدار البروتوكول 1 ؛ لا يُستخدم حقل التعليق لأي شيء (ولكن قد يكون مناسبًا للمستخدم لتحديد المفتاح). بالنسبة للإصدار البرمجي 2 ، فإن النوع keytype هو `` ssh-dss '' أو `` ssh-rsa ''

لاحظ أن الخطوط في هذا الملف تكون عادةً عدة مئات بايت (بسبب حجم ترميز المفتاح العمومي). أنت لا تريد كتابتها في؛ بدلاً من ذلك ، انسخ id.dsa.pub identity.pub أو ملف id_rsa.pub وقم بتحريره.

سشد يفرض الحد الأدنى لحجم معامل مفتاح RSA لمفاتيح البروتوكول 1 والمفتاح 2 من 768 بت.

تتكون الخيارات (إن وجدت) من مواصفات خيار مفصولة بفواصل. لا يُسمح بوجود مسافات ، ما عدا ضمن علامات اقتباس مزدوجة. يتم دعم مواصفات الخيارات التالية (لاحظ أن الكلمات الرئيسية الاختيارية غير حساسة لحالة الأحرف):

من = نمط قائمة

يحدد أنه بالإضافة إلى مصادقة المفتاح العام ، يجب أن يكون الاسم الأساسي للمضيف البعيد موجودًا في قائمة الأنماط المفصولة بفواصل (`* 'و`؟' بمثابة أحرف البدل). قد تحتوي القائمة أيضًا على أنماط تم إبطالها عن طريق البادئة بعلامة `! . إذا تطابق اسم المضيف الأساسي مع نمط متوقف ، فلن يتم قبول المفتاح. الغرض من هذا الخيار هو زيادة الأمان اختياريًا: لا تثق مصادقة المفتاح العمومي بنفسها في الشبكة أو خوادم الأسماء أو أي شيء (ولكن المفتاح) ؛ ومع ذلك ، إذا قام شخص ما بسرقة المفتاح بشكل ما ، فإن المفتاح يسمح لدخيل بالدخول من أي مكان في العالم. هذا الخيار الإضافي يجعل استخدام مفتاح مسروق أكثر صعوبة (يجب أن يتم اختراق خوادم الأسماء و / أو أجهزة التوجيه بالإضافة إلى المفتاح فقط).

القيادة = الأمر

يحدد أن الأمر يتم تنفيذه عند استخدام هذا المفتاح للمصادقة. يتم تجاهل الأمر الموفر من قبل المستخدم (إن وجد). يتم تشغيل الأمر على pty إذا طلب العميل pty؛ خلاف ذلك يتم تشغيله دون توتي. إذا كانت هناك حاجة إلى قناة نظيفة ذات 8 بت ، يجب على المرء ألا يطلب مبلغًا أو يجب تحديدهعدم بي تي واي قد يتم تضمين علامة اقتباس في الأمر من خلال اقتباسها بخط مائل عكسي. قد يكون هذا الخيار مفيدًا لتقييد بعض المفاتيح العامة لتنفيذ عملية محددة فقط. قد يكون أحد الأمثلة مفتاحًا يسمح بالنسخ الاحتياطي عن بُعد ولكن لا شيء آخر. لاحظ أنه قد يحدد العميل TCP / IP و / أو إعادة توجيه X11 ما لم تكن محظورة صراحةً. لاحظ أن هذا الخيار ينطبق على تنفيذ الأوامر أو الأوامر أو النظام الفرعي.

البيئة = NAME = قيمة

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

عدم ميناء الشحن

يمنع إعادة توجيه TCP / IP عند استخدام هذا المفتاح للمصادقة. أي طلبات إعادة توجيه المنفذ من قبل العميل ستقوم بإرجاع خطأ. قد يتم استخدام هذا ، على سبيل المثال ، فيما يتعلق بـأمر اختيار.

عدم X11 إعادة توجيه

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

لا وكيل إعادة توجيه

يمنع إعادة توجيه عامل مصادقة عندما يتم استخدام هذا المفتاح للمصادقة.

عدم بي تي واي

يمنع تخصيص tty (سوف يفشل طلب تخصيص pty).

permitopen = منفذ المضيف

الحد المحلية`` ssh -L '' إعادة توجيه المنفذ بحيث قد يتصل فقط بالمضيف والمنفذ المحددين. يمكن تحديد عناوين IPv6 ببنية بديلة: استضافة الميناء مضاعف permitopen يمكن تطبيق الخيارات مفصولة بفواصل. لا يتم تنفيذ مطابقة النمط على أسماء المضيفات المحددة ، يجب أن تكون نطاقات أو عناوين حرفية.

أمثلة

1024 33 12121 … 312314325 [email protected]

from = "*. niksula.hut.fi،! pc.niksula.hut.fi" 1024 35 23 … 2334 ylo @ niksula

command = "dump / home"، no-pty، no-port-forwarding 1024 33 23 … 2323 backup.hut.fi

allowopen = "10.2.1.55:80" ، تصريح = "10.2.1.56:25" 1024 33 23 … 2323

Ssh_Known_Hosts تنسيق الملف

تحتوي الملفات / etc / ssh / ssh_known_hosts و $ HOME / .ssh / known_hosts على مفاتيح عامة للمضيف لكافة المضيفات المعروفة. يجب أن يقوم المسئول بإعداد الملف العام (اختياري) ، ويتم الاحتفاظ بالملف لكل مستخدم تلقائيًا: عندما يتصل المستخدم من مضيف غير معروف ، تتم إضافة مفتاحه إلى ملف لكل مستخدم.

يحتوي كل سطر في هذه الملفات على الحقول التالية: hostnames، bits، exponent، modulus، comment. يتم فصل الحقول بمسافات.

أسماء المضيف هي قائمة مفصولة بفواصل ('*' و '؟' بمثابة أحرف البدل)؛ يتم مطابقة كل نمط ، بدوره ، مع اسم المضيف الأساسي (عند مصادقة عميل) أو ضد الاسم المقدم من قبل المستخدم (عند مصادقة خادم). قد يسبق النمط أيضًا `! للإشارة إلى النفي: إذا كان اسم المضيف يتطابق مع نمط تالف ، فإنه لا يتم قبوله (بهذا الخط) حتى إذا كان يطابق نمطًا آخر على الخط.

تؤخذ البتات ، الأس ، والمعامل مباشرة من مفتاح المضيف RSA ؛ يمكن الحصول عليها ، على سبيل المثال ، من /etc/ssh/ssh_host_key.pub يستمر حقل التعليق الاختياري في نهاية السطر ، ولا يُستخدم.

يتم تجاهل الأسطر التي تبدأ بـ `# 'والخطوط الفارغة كتعليقات.

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

لاحظ أن الخطوط الموجودة في هذه الملفات تكون في العادة مئات الأحرف ، ولا تريد بالتأكيد كتابة مفاتيح المضيف يدويًا. بدلاً من ذلك ، قم بإنشائها بواسطة برنامج نصي أو عن طريق أخذ /etc/ssh/ssh_host_key.pub وإضافة أسماء المضيفين في المقدمة.

أمثلة

closenet، …، 130.233.208.41 1024 37 159 … 93 closenet.hut.fi cvs.openbsd.org، 199.185.137.3 ssh-rsa AAAA1234 ….. =

أنظر أيضا

scp (1)، sftp (1)، ssh (1)، ssh-add1، ssh-agent1، ssh-keygen1، login.conf5، moduli (5)، sshd_config5، sftp-server8

T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen "بنية بروتوكول SSH" مشروع - ietf - secsh - architecture - 12.txt يناير 2002 العمل في مواد التقدم

M. Friedl N. Provos W. A. ​​Simpson "Diffie-Hellman Group Exchange لبروتوكول طبقة النقل SSH" draft-ietf-secsh-dh-group-exchange-02.txt January 2002 work in progress material

مهم: استخدم ال رجل أمر ( رجل٪ ) لمعرفة كيفية استخدام الأمر على جهاز الكمبيوتر الخاص بك.