SSHD_CONFIG(5)

الاسم
sshd_config - ملف إعدادات عفريت OpenSSH

الوصف
يقرأ sshd(8) ملف الإعداد من /etc/ssh/sshd_config (أو الملف المحدد بواسطة الفتحة -f في سطر الأوامر). يحتوي الملف على أزواج من (الكلمة المفتاحية والوسيط)، بمعدل زوج واحد لكل سطر. ما لم يُذكر خلاف ذلك، تُستخدم أول قيمة تُحصل عليها لكل كلمة مفتاحية. تُفسر السطور التي تبدأ بـ ‘#’ والسطور الفارغة على أنها تعليقات. يمكن اختياريًا إحاطة الوسائط بعلامتي اقتباس مزدوجتين (") لتمثيل الوسائط التي تحتوي على مسافات.

لاحظ أن حزمة دبيان openssh-server تضبط خيارات عدة كمعيار قياسي في /etc/ssh/sshd_config وهي ليست المبدئية في sshd(8):

•   Include /etc/ssh/sshd_config.d/*.conf
•   KbdInteractiveAuthentication no
•   X11Forwarding yes
•   PrintMotd no
•   AcceptEnv LANG LC_* COLORTERM NO_COLOR
•   Subsystem sftp /usr/lib/openssh/sftp-server
•   UsePAM yes

تُضمّن ملفات /etc/ssh/sshd_config.d/*.conf في بداية ملف الضبط، لذا فإن الخيارات المَضبوطة هناك ستتجاوز تلك المَضبوطة في /etc/ssh/sshd_config.

الكلمات المفتاحية الممكنة ومعانيها هي كما يلي (لاحظ أن الكلمات المفتاحية غير حساسة لحالة الأحرف والوسائط حساسة لها):

AcceptEnv
    تُحدد متغيرات البيئة المرسلة من العميل التي تُنسخ إلى بيئة الجلسة environ(7). راجع SendEnv و SetEnv في ssh_config(5) لمعرفة كيفية إعداد العميل. يُقبل متغير البيئة TERM دائمًا عندما يُطلب طرفية وهمية (pseudo-terminal) من العميل لأنه مطلوب بواسطة البروتوكول. تُحدد المتغيرات بالاسم، وقد تحتوي على محارف برية (wildcard) مثل ‘*’ و ‘’?. يمكن الفصل بين متغيرات البيئة المتعددة بمسافات بيضاء أو توزيعها عبر عدة توجيهات AcceptEnv. يُرجى الحذر من أن بعض متغيرات البيئة قد تُستخدم لتجاوز بيئات المستخدمين المقيدة. لهذا السبب، يجب توخي الحذر عند استخدام هذا التوجيه. الافتراضي هو عدم قبول أي متغيرات بيئية.

AddressFamily
    يحدد عائلة العناوين (address family) التي يجب استخدامها بواسطة sshd(8). الوسائط الصالحة هي any (المبدئي)، أو inet (استخدام IPv4 فقط)، أو inet6 (استخدام IPv6 only).

AllowAgentForwarding
    يحدد ما إذا كان توجيه ssh-agent(1) مسموحًا به. المبدئي هو yes. لاحظ أن تعطيل توجيه العميل لا يحسن الأمان إلا إذا مُع المستخدمون أيضًا من الوصول إلى الغلاف الأصلي (shell)، حيث يمكنهم دائمًا تثبيت موجهين خاصين بهم.

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

    انظر قسم PATTERNS في ssh_config(5) لمزيد من المعلومات حول الأنماط. قد تظهر هذه الكلمة المفتاحية عدة مرات في sshd_config حيث تقوم كل نسخة بالإلحاق بالقائمة.

AllowStreamLocalForwarding
    يحدد ما إذا كان توجيه StreamLocal (مقبس نطاق يونكس Unix-domain socket) مسموحًا به. الخيارات المتاحة هي yes (المبدئي) أو all للسماح بتوجيه StreamLocal، و no لمنع كل توجيه StreamLocal، و local للسماح بالتوجيه المحلي فقط (من منظور ssh(1)) ، أو remote للسماح بالتوجيه عن بُعد فقط. لاحظ أن تعطيل توجيه StreamLocal لا يحسن الأمان إلا إذا مُع المستخدمون أيضًا من الوصول إلى الغلاف (shell)، حيث يمكنهم دائمًا تثبيت موجهين خاصين بهم.

AllowTcpForwarding
    يحدد ما إذا كان توجيه TCP مسموحًا به. الخيارات المتاحة هي yes (المبدئي) أو all للسماح بتوجيه TCP، و no لمنع كل توجيه TCP، و local للسماح بالتوجيه المحلي فقط (من منظور ssh(1)) ، أو remote للسماح بالتوجيه عن بُعد فقط. لاحظ أن تعطيل توجيه TCP لا يحسن الأمان إلا إذا مُع المستخدمون أيضًا من الوصول إلى الغلاف (shell)، حيث يمكنهم دائمًا تثبيت موجهين خاصين بهم.

AllowUsers
    يمكن أن تُتبع هذه الكلمة المفتاحية بقائمة من أنماط أسماء المستخدمين، مفصولة بمسافات. إذا حُددت، فسيُسمح بالولوج فقط لأسماء المستخدمين التي تطابق أحد الأنماط. أسماء المستخدمين فقط هي الصالحة؛ لا يُتعرف على معرف المستخدم الرقمي (UID). بشكل مبدئي، يُسمح بالولوج لجميع المستخدمين. إذا كان النمط يأخذ الشكل USER@HOST فسيتم فحص USER و HOST بشكل منفصل، مما يقيد ولوج لمستخدمين معينين من مضيفين معينين. وقد تحتوي معايير HOST بالإضافة إلى ذلك على عناوين للمطابقة بتنسيق CIDR (العنوان/طول القناع). لا يُرجع إلى AllowUsers للمستخدمين الذين يطابقون DenyUsers.

    انظر قسم PATTERNS في ssh_config(5) لمزيد من المعلومات حول الأنماط. قد تظهر هذه الكلمة المفتاحية عدة مرات في sshd_config حيث تقوم كل نسخة بالإلحاق بالقائمة.

AuthenticationMethods
    تُحدد طرق المصادقة التي يجب إكمالها بنجاح لمنح المستخدم حق الوصول. يجب أن يُتبع هذا الخيار بقائمة واحدة أو أكثر من أسماء طرق المصادقة المفصولة بفاصلة، أو بالسلسلة النصية المفردة any للإشارة إلى السلوك المبدئي المتمثل في قبول أي طريقة مصادقة مفردة. إذا تجاوز المبدئي تتطلب المصادقة الناجحة إكمال كل طريقة في قائمة واحدة على الأقل من هذه القوائم.

    على سبيل المثال، تتطلب القيمة "publickey,password publickey,keyboard-interactive" من المستخدم إكمال مصادقة المفتاح العام، متبوعة إما بمصادقة كلمة السر أو المصادقة التفاعلية للوحة المفاتيح (keyboard-interactive). تُقدم الطرق التالية في قائمة واحدة أو أكثر فقط في كل مرحلة، لذلك في هذا المثال لن يكون من الممكن محاولة مصادقة كلمة السر أو المصادقة التفاعلية قبل المفتاح العام.

    بالنسبة للمصادقة التفاعلية للوحة المفاتيح، يمكن أيضًا تقييد المصادقة لجهاز معين عن طريق إلحاق نقطتين متبوعتين بمعرف الجهاز bsdauth أو pam ، اعتمادًا على إعدادات الخادم. على سبيل المثال، يقوم "keyboard-interactive:bsdauth" بتقييد المصادقة التفاعلية للوحة المفاتيح بجهاز bsdauth فقط.

    إذا أُدرجت طريقة المفتاح العام (publickey) أكثر من مرة، يتحقق sshd(8) من أن المفاتيح التي استُخدمت بنجاح لا يُعاد استخدامها في عمليات المصادقة اللاحقة. على سبيل المثال، يتطلب "publickey,publickey" مصادقة ناجحة باستخدام مفتاحين عامين مختلفين.

    لاحظ أن كل طريقة مصادقة مدرجة يجب أن تكون مُمكّنة بشكل صريح أيضًا في الإعدادات.

    طرق المصادقة المتاحة هي: "gssapi-with-mic" و "hostbased" و "keyboard-interactive" و "none" (تُستخدم للوصول إلى الحسابات الخالية من كلمات السر عند تمكين PermitEmptyPasswords) و "password" و "publickey".

AuthorizedKeysCommand
    يحدد برنامجًا يُستخدم للبحث عن المفاتيح العامة للمستخدم. يجب أن يكون البرنامج مملوكًا للمستخدم الجذر (root)، وغير قابل للكتابة من قِبل المجموعة أو الآخرين، ومحددًا بمسار مطلق. تقبل وسائط AuthorizedKeysCommand الرموز (tokens) الموصوفة في قسم TOKENS. إذا لم تُحدد أي وسائط، فسيُستخدم اسم المستخدم الخاص بالمستخدم المستهدف.

    يجب أن يُنتج البرنامج على المخرجات القياسية (standard output) صفرًا أو أكثر من السطور الخاصة بمخرجات authorized_keys (انظر AUTHORIZED_KEYS في sshd(8)). يُجرب AuthorizedKeysCommand بعد ملفات AuthorizedKeysFile المعتادة ولن يُنفذ إذا وُجد مفتاح مطابق هناك. بشكل مبدئي، لا يُشغل أي AuthorizedKeysCommand. يُنفذ هذا الأمر فقط للمستخدمين الصالحين.

AuthorizedKeysCommandUser
    يحدد المستخدم الذي يُشغل أمر AuthorizedKeysCommand تحت حسابه. يُوصى باستخدام مستخدم مخصص ليس له أي دور آخر على المضيف سوى تشغيل أوامر المفاتيح المصرح بها. إذا حُدد AuthorizedKeysCommand ولم يُحدد AuthorizedKeysCommandUser ، فإن sshd(8) سيرفض البدء.

AuthorizedKeysFile
    يحدد الملف الذي يحتوي على المفاتيح العامة المستخدمة لمصادقة المستخدم. التنسيق موصوف في قسم AUTHORIZED_KEYS FILE FORMAT في sshd(8). قد تتضمن وسائط AuthorizedKeysFile محارف برية (wildcards) وتقبل الرموز الموصوفة في قسم TOKENS. بعد التوسيع، يُعتبر AuthorizedKeysFile مسارًا مطلقًا أو مسارًا نسبيًا لدليل المنزل الخاص بالمستخدم. يمكن إدراج ملفات متعددة، مفصولة بمسافات بيضاء. بدلاً من ذلك، يمكن تعيين هذا الخيار إلى none لتخطي التحقق من مفاتيح المستخدم في الملفات. المبدئي هو ".ssh/authorized_keys .ssh/authorized_keys2". تُفحص هذه الملفات فقط للمستخدمين الصالحين.

AuthorizedPrincipalsCommand
    يحدد برنامجًا يُستخدم لإنشاء قائمة بالمفوضين (principals) المسموح لهم بالشهادات وفقًا لـ AuthorizedPrincipalsFile. يجب أن يكون البرنامج مملوكًا للجذر (root)، وغير قابل للكتابة من قِبل المجموعة أو الآخرين، ومحددًا بمسار مطلق. تُقبل وسائط AuthorizedPrincipalsCommand الرموز الموصوفة في قسم TOKENS. إذا لم تُحدد أي وسائط، فسيُستخدم اسم المستخدم للمستخدم المستهدف.

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

AuthorizedPrincipalsCommandUser
    يحدد المستخدم الذي يُشغل أمر AuthorizedPrincipalsCommand تحت حسابه. يُوصى باستخدام مستخدم مخصص ليس له دور آخر على المضيف سوى تشغيل أوامر المفوضين المصرح بها. إذا حُدد AuthorizedPrincipalsCommand ولم يُحدد AuthorizedPrincipalsCommandUser ، فإن sshd(8) سيرفض البدء.

AuthorizedPrincipalsFile
    يحدد ملفًا يسرد أسماء المفوضين (principal names) المقبولة لمصادقة الشهادات. عند استخدام شهادات موقعة بواسطة مفتاح مدرج في TrustedUserCAKeys ، فإن هذا الملف يسرد الأسماء التي يجب أن يظهر أحدها في الشهادة ليُقبل للمصادقة. تُسرد الأسماء بمعدل اسم واحد لكل سطر مسبوقًا بخيارات المفتاح (كما هو موصوف في AUTHORIZED_KEYS FILE FORMAT في sshd(8)). تُتجاهل السطور الفارغة والتعليقات التي تبدأ بـ ‘#’.

    قد تتضمن وسائط AuthorizedPrincipalsFile محارف برية وتقبل الرموز الموصوفة في قسم TOKENS. بعد التوسيع، يُعتبر AuthorizedPrincipalsFile مسارًا مطلقًا أو مسارًا نسبيًا لدليل منزل المستخدم. المبدئي هو none ، أي عدم استخدام ملف مفوضين؛ وفي هذه الحالة، يجب أن يظهر اسم المستخدم الخاص بالمستخدم في قائمة مفوضي الشهادة ليُقبل. يُفحص هذا الملف فقط للمستخدمين الصالحين.

    لاحظ أن AuthorizedPrincipalsFile يُستخدم فقط عندما تتم المصادقة باستخدام مرجع مصدق (CA) مدرج في TrustedUserCAKeys ، ولا يُرجع إليه للمراجع المصدقة الموثوقة عبر ~/.ssh/authorized_keys ، على الرغم من أن خيار المفتاح principals= يقدم ميزة مماثلة (راجع sshd(8) للتفاصيل).

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

CASignatureAlgorithms
    يحدد الخوارزميات المسموح بها لتوقيع الشهادات من قبل سلطات التصديق (CAs). المبدئي هو:

        ssh-ed25519,ecdsa-sha2-nistp256,
        ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
        sk-ssh-ed25519@openssh.com,
        sk-ecdsa-sha2-nistp256@openssh.com,
        rsa-sha2-512,rsa-sha2-256

    إذا بدأت القائمة المحددة بمحرف ‘+’ ، فسَيُلحَق الخوارزميات المحددة بالمجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة المحددة بمحرف ‘-’ ، فسَتُزَال الخوارزميات المحددة (بما في ذلك الرموز العامة) من المجموعة المبدئية بدلاً من استبدالها.

    لن تُقبل الشهادات الموقعة باستخدام خوارزميات أخرى لمصادقة المفتاح العام أو المصادقة القائمة على المضيف.

ChannelTimeout
    يحدد ما إذا كان ينبغي لـ sshd(8) إغلاق القنوات غير النشطة ومدى سرعة ذلك. تُحدد المهلات كزوج أو أكثر من صيغة “type=interval” مفصولة بمسافات بيضاء، حيث يجب أن يكون “type” هو الكلمة المفتاحية الخاصة “global” أو اسم نوع قناة من القائمة أدناه، والذي قد يحتوي اختياريًا على محارف برية.

    تحدد قيمة المهلة “interval” بالثواني أو قد تستخدم أيًا من الوحدات الموثقة في قسم TIME FORMATS. على سبيل المثال، سيؤدي “session=5m” إلى إنهاء الجلسات التفاعلية بعد خمس دقائق من عدم النشاط. تحديد قيمة صفرية يعطل مهلة عدم النشاط.

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

    تتضمن أسماء أنواع القنوات المتاحة:

    agent-connection
        فتح اتصالات بـ ssh-agent(1).

    direct-tcpip, direct-streamlocal@openssh.com
        فتح اتصالات مقبس TCP أو Unix (على التوالي) التي أُنشِئَت من توجيه محلي لـ ssh(1) ، أي LocalForward أو DynamicForward.

    forwarded-tcpip, forwarded-streamlocal@openssh.com
        تفتح اتصالات مقبس TCP أو Unix (على التوالي) التي أُنشِئَت إلى sshd(8) الذي يستمع نيابة عن توجيه بعيد لـ ssh(1) ، أي RemoteForward.

    session
        جلسة العمل الرئيسة التفاعلية، بما في ذلك جلسة الصدفة، وتنفيذ الأوامر، و scp(1) ، و sftp(1) ، وما إلى ذلك.

    tun-connection
        فتح اتصالات TunnelForward.

    x11-connection
        فتح جلسات توجيه X11.

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

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

    المبدئي هو عدم إنهاء صلاحية القنوات من أي نوع بسبب عدم النشاط.

ChrootDirectory
    يحدد اسم المسار لدليل لتطبيق أمر السجن chroot(2) إليه بعد المصادقة. عند بدء الجلسة، يتحقق sshd(8) من أن جميع مكونات اسم المسار هي أدلة مملوكة للجذر (root) وغير قابلة للكتابة من قِبل المجموعة أو الآخرين. بعد عملية chroot، يغير sshd(8) دليل العمل إلى دليل منزل المستخدم. تقبل وسائط ChrootDirectory الرموز الموصوفة في قسم TOKENS.

    يجب أن يحتوي ChrootDirectory على الملفات والأدلة اللازمة لدعم جلسة المستخدم. بالنسبة للجلسة التفاعلية، يتطلب هذا على الأقل غلافًا (shell)، عادةً sh(1) ، وعقد /dev الأساسية مثل أجهزة null(4) و zero(4) و stdin(4) و stdout(4) و stderr(4) و tty(4). بالنسبة لجلسات نقل الملفات باستخدام SFTP، لا يلزم أي إعداد إضافي للبيئة إذا استُخدم خادم sftp المدمج (in-process)، على الرغم من أن الجلسات التي تستخدم التسجيل (logging) قد تتطلب وجود /dev/log داخل دليل chroot في بعض أنظمة التشغيل (راجع sftp-server(8) للتفاصيل).

    للسلامة، من المهم جدًا منع تعديل الهيكل الشجري للأدلة من قِبل العمليات الأخرى في النظام (خاصة تلك الموجودة خارج السجن). يمكن أن يؤدي سوء الإعداد إلى بيئات غير آمنة لا يستطيع sshd(8) اكتشافها.

    المبدئي هو none ، مما يشير إلى عدم استخدام chroot(2).

Ciphers
    يحدد الشفرات (ciphers) المسموح بها. يجب الفصل بين الشفرات المتعددة بفاصلة. إذا بدأت القائمة المحددة بمحرف الفتحة ‘+’ ، فتُلحق الشفرات المحددة بالمجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة بمحرف الطرح ‘-’ ، فتُزال الشفرات المحددة (بما في ذلك المحارف البرية) من المجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة بمحرف الأس ‘^’ ، فتُوضع الشفرات المحددة في مقدمة المجموعة المبدئية.

    المعميات المدعومة هي:

    3des-cbc
    aes128-cbc
    aes192-cbc
    aes256-cbc
    aes128-ctr
    aes192-ctr
    aes256-ctr
    aes128-gcm@openssh.com
    aes256-gcm@openssh.com
    chacha20-poly1305@openssh.com

    المبدئي هو:

        chacha20-poly1305@openssh.com,
        aes128-gcm@openssh.com,aes256-gcm@openssh.com,
        aes128-ctr,aes192-ctr,aes256-ctr

    يمكن أيضًا الحصول على قائمة التعميات المتاحة باستخدام "ssh -Q cipher".

ClientAliveCountMax
    يحدد عدد رسائل الحفاظ على حياة العميل (client alive messages) التي يمكن إرسالها دون أن يتلقى sshd(8) أي رسائل في المقابل من العميل. إذا وُصلَ إلى هذا الحد الأدنى أثناء إرسال الرسائل، فسيقوم sshd بفصل العميل وإنهاء الجلسة. من المهم ملاحظة أن استخدام رسائل حياة العميل يختلف تمامًا عن خيار TCPKeepAlive. تُرسل رسائل حياة العميل عبر القناة المشفرة وبالتالي لا يمكن تزويرها (non-spoofable). أما خيار TCP keepalive المُمكّن بواسطة TCPKeepAlive فهو قابل للتزوير. آلية الحفاظ على حياة العميل قيمة للغاية عندما يعتمد العميل أو الخادم على معرفة متى يصبح الاتصال غير مستجيب.

    القيمة المبدئية هي 3. إذا عُين ClientAliveInterval على 15، وتُرك ClientAliveCountMax على القيمة المبدئية، فسيُفصل عملاء SSH غير المستجيبين بعد 45 ثانية تقريبًا. تعيين قيمة صفر في ClientAliveCountMax يعطل إنهاء الاتصال.

ClientAliveInterval
    يحدد فاصل مهلة زمني بالثواني، والذي إذا لم تُتلق أي بيانات بعده من العميل، فسيقوم sshd(8) بإرسال رسالة عبر القناة المشفرة لطلب استجابة من العميل. المبدئي هو 0، مما يشير إلى أن هذه الرسائل لن تُرسل إلى العميل.

Compression
    يحدد ما إذا كان الضغط مُمكّنًا بعد نجاح مصادقة المستخدم. يجب أن يكون الوسيط إما yes ، أو delayed (مرادف قديم لـ yes) ، أو no. المبدئي هو yes.

DebianBanner
    يحدد ما إذا كانت اللاحقة الإضافية للإصدار المحددة من التوزيعة تُضمّن أثناء المصافحة الأولية للبروتوكول. المبدئي هو yes.

DenyGroups
    يمكن أن تُتبع هذه الكلمة المفتاحية بقائمة من أنماط أسماء المجموعات، مفصولة بمسافات. يُرفض ولوج للمستخدمين الذين تطابق مجموعتهم الأساسية أو قائمة مجموعاتهم الإضافية أحد الأنماط. أسماء المجموعات فقط هي الصالحة؛ لا يُتعرف على معرف المجموعة الرقمي. بشكل مبدئي، يُسمح بالولوج لجميع المجموعات. لا يُرجع إلى AllowGroups للمجموعات التي تطابق DenyGroups.

    انظر قسم PATTERNS في ssh_config(5) لمزيد من المعلومات حول الأنماط. قد تظهر هذه الكلمة المفتاحية عدة مرات في sshd_config حيث تقوم كل نسخة بالإلحاق بالقائمة.

DenyUsers
    يمكن أن تُتبع هذه الكلمة المفتاحية بقائمة من أنماط أسماء المستخدمين، مفصولة بمسافات. يُحظر ولوج لأسماء المستخدمين التي تطابق أحد الأنماط. أسماء المستخدمين فقط هي الصالحة؛ لا يُتعرف على معرف المستخدم الرقمي. بشكل مبدئي، يُسمح بالولوج لجميع المستخدمين. إذا كان النمط يأخذ الشكل USER@HOST فسيتم فحص USER و HOST بشكل منفصل، مما يقيد ولوج لمستخدمين معينين من مضيفين معينين. قد تحتوي معايير HOST بالإضافة إلى ذلك على عناوين للمطابقة بتنسيق CIDR. لا يُرجع إلى AllowUsers للمستخدمين الذين يطابقون DenyUsers.

    انظر قسم PATTERNS في ssh_config(5) لمزيد من المعلومات حول الأنماط. قد تظهر هذه الكلمة المفتاحية عدة مرات في sshd_config حيث تقوم كل نسخة بالإلحاق بالقائمة.

DisableForwarding
    يعطل جميع ميزات التوجيه (forwarding)، بما في ذلك X11 و ssh-agent(1) و TCP و StreamLocal. يتجاوز هذا الخيار جميع الخيارات الأخرى المتعلقة بالتوجيه وقد يبسط الإعدادات المقيدة.

ExposeAuthInfo
    يكتب ملفًا مؤقتًا يحتوي على قائمة بطرق المصادقة والاعتمادات العامة (مثل المفاتيح) المستخدمة لمصادقة المستخدم. يُكشف موقع الملف لجلسة المستخدم من خلال متغير البيئة SSH_USER_AUTH. المبدئي هو no.

FingerprintHash
    يحدد خوارزمية التجزئة (hash algorithm) المستخدمة عند تسجيل بصمات المفاتيح. الخيارات الصالحة هي: md5 و sha256. المبدئي هو sha256.

ForceCommand
    يجبر على تنفيذ الأمر المحدد بواسطة ForceCommand ، متجاهلاً أي أمر يقدمه العميل وملف ~/.ssh/rc في حال وجوده. يُستدعى الأمر باستخدام غلاف ولوج الخاص بالمستخدم مع خيار -c. ينطبق هذا على تنفيذ الغلاف أو الأمر أو النظام الفرعي. يكون هذا الخيار مفيدًا للغاية داخل كتلة Match. يتوفر الأمر الأصلي الذي قدمه العميل في متغير البيئة SSH_ORIGINAL_COMMAND. تحديد الأمر بـ internal-sftp سيجبر على استخدام خادم SFTP مدمج لا يتطلب ملفات دعم عند استخدامه مع ChrootDirectory. المبدئي هو none.

    لا يحد هذا التوجيه من أنواع الوصول الأخرى التي قد يطلبها العميل عبر اتصاله، مثل توجيه TCP أو العميل (agent) أو المقبس (socket) أو X11. إذا كانت هذه الميزات غير مرغوب فيها، فيجب تعطيلها صراحةً، إما بشكل فردي عبر خياراتها الخاصة أو معًا باستخدام خيار DisableForwarding.

GatewayPorts
    يحدد ما إذا كان يُسمح للمضيفين البعيدين بالاتصال بالمنافذ الموجهة للعميل. بشكل مبدئي، يربط sshd(8) توجيه المنافذ البعيدة بعنوان الحلقة المحلية (loopback address). هذا يمنع المضيفين البعيدين الآخرين من الاتصال بالمنافذ الموجهة. يمكن استخدام GatewayPorts لتحديد أن sshd يجب أن يسمح لتوجيه المنافذ البعيدة بالارتباط بعناوين غير حلقة محلية، وبالتالي السماح للمضيفين الآخرين بالاتصال. قد يكون الوسيط no لجعل توجيه المنافذ البعيدة متاحًا للمضيف المحلي فقط، أو yes لإجبار توجيه المنافذ البعيدة على الارتباط بالعنوان البري (wildcard address)، أو clientspecified للسماح للعميل باختيار العنوان الذي يرتبط به التوجيه. المبدئي هو no.

GSSAPIAuthentication
    يحدد ما إذا كان مصادقة المستخدم القائمة على GSSAPI مسموحاً بها. المبدئي هو no.

GSSAPICleanupCredentials
    يحدد ما إذا كانت ذاكرة التخزين المؤقت لاعتمادات المستخدم (credentials cache) ستُدمر تلقائيًا عند تسجيل الخروج. المبدئي هو yes.

GSSAPIDelegateCredentials
    قبول الاعتمادات المفوضة (delegated credentials) من جانب الخادم. المبدئي هو yes.

GSSAPIKeyExchange
    يُحدد ما إذا كان تبادل المفاتيح القائم على GSSAPI مسموحاً به. لا يعتمد تبادل مفاتيح GSSAPI على مفاتيح ssh للتحقق من هوية المضيف. المبدئي هو no.

GSSAPIStrictAcceptorCheck
    يحدد ما إذا كان يجب التشدد بشأن هوية مستقبل GSSAPI (GSSAPI acceptor) الذي يتصادق العميل ضده. إذا عُين على yes ، فيجب على العميل المصادقة ضد خدمة المضيف على اسم المضيف الحالي. وإذا عُين على no ، فقد يتصادق العميل ضد أي مفتاح خدمة مخزن في المخزن المبدئي للجهاز. تُوفر هذه الميزة للمساعدة في العمل على الأجهزة ذات الواجهات الشبكية المتعددة (multi-homed). المبدئي هو yes.

GSSAPIStoreCredentialsOnRekey
    يُتحكم في ما إذا كان ينبغي تحديث اعتمادات GSSAPI الخاصة بالمستخدم بعد إعادة تبادل المفاتيح بنجاح للاتصال. يمكن استخدام هذا الخيار لقَبول الاعتمادات المجددة أو المحدثة من عميل متوافق. المبدئي هو “no”.

    لكي يعمل هذا، يجب تمكين GSSAPIKeyExchange في الخادم واستخدامه أيضًا بواسطة العميل.

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

        gss-gex-sha1-,
        gss-group1-sha1-,
        gss-group14-sha1-,
        gss-group14-sha256-,
        gss-group16-sha512-,
        gss-nistp256-sha256-,
        gss-curve25519-sha256-

    المبدئي هو “gss-group14-sha256-,gss-group16-sha512-,gss-nistp256-sha256-,gss-curve25519-sha256-”. ينطبق هذا الخيار فقط على الاتصالات التي تستخدم GSSAPI.

HostbasedAcceptedAlgorithms
    يحدد خوارزميات التوقيع المقبولة للمصادقة القائمة على المضيف (hostbased authentication) كقائمة من الأنماط المفصولة بفاصلة. بدلاً من ذلك، إذا بدأت القائمة المحددة بمحرف الفتحة ‘+’ ، فسيتم إلحاق خوارزميات التوقيع المحددة بالمجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة بمحرف الطرح ‘-’ ، فسيتم إزالة خوارزميات التوقيع المحددة (بما في ذلك المحارف البرية) من المجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة بمحرف الأس ‘^’ ، فسيتم وضع خوارزميات التوقيع المحددة في مقدمة المجموعة المبدئية. المبدئي لهذا الخيار هو:

        ssh-ed25519-cert-v01@openssh.com,
        ecdsa-sha2-nistp256-cert-v01@openssh.com,
        ecdsa-sha2-nistp384-cert-v01@openssh.com,
        ecdsa-sha2-nistp521-cert-v01@openssh.com,
        sk-ssh-ed25519-cert-v01@openssh.com,
        sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
        webauthn-sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
        rsa-sha2-512-cert-v01@openssh.com,
        rsa-sha2-256-cert-v01@openssh.com,
        ssh-ed25519,
        ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
        sk-ssh-ed25519@openssh.com,
        sk-ecdsa-sha2-nistp256@openssh.com,
        webauthn-sk-ecdsa-sha2-nistp256@openssh.com,
        rsa-sha2-512,rsa-sha2-256

    يمكن أيضًا الحصول على قائمة خوارزميات التوقيع المتاحة باستخدام "ssh -Q HostbasedAcceptedAlgorithms". كان هذا الخيار يسمى سابقًا HostbasedAcceptedKeyTypes.

HostbasedAuthentication
    يحدد ما إذا كانت مصادقة rhosts أو /etc/hosts.equiv مسموحًا بها جنبًا إلى جنب مع مصادقة مفتاح عام ناجحة لمضيف العميل (المصادقة القائمة على المضيف). المبدئي هو no.

HostbasedUsesNameFromPacketOnly
    يحدد ما إذا كان الخادم سيحاول إجراء بحث عكسي عن الاسم (reverse name lookup) عند مطابقة الاسم في ملفات ~/.shosts و ~/.rhosts و /etc/hosts.equiv أثناء عملية HostbasedAuthentication. يعني التعيين على yes أن sshd(8) يستخدم الاسم المقدم من العميل بدلاً من محاولة حل الاسم (resolve) من اتصال TCP نفسه. المبدئي هو no.

HostCertificate
    يحدد ملفًا يحتوي على شهادة مضيف عامة. يجب أن يطابق المفتاح العام للشهادة مفتاح مضيف خاصًا محددًا بالفعل بواسطة HostKey. السلوك المبدئي لـ sshd(8) هو عدم تحميل أي شهادات.

HostKey
    يحدد ملفًا يحتوي على مفتاح مضيف خاص مستخدم بواسطة SSH. القيم المبدئية هي /etc/ssh/ssh_host_ecdsa_key و /etc/ssh/ssh_host_ed25519_key و /etc/ssh/ssh_host_rsa_key.

    لاحظ أن sshd(8) سيرفض استخدام أي ملف إذا كان متاحًا للقراءة/الكتابة من قِبل المجموعة أو العامة (group/world-accessible)، وأن خيار HostKeyAlgorithms يقيد أي المفاتيح تُستخدم فعليًا بواسطة sshd(8).

    من الممكن وجود عدة ملفات لمفاتيح المضيف. ومن الممكن أيضًا تحديد ملفات مفاتيح مضيف عامة بدلاً من ذلك. وفي هذه الحالة، ستُفوض العمليات التي تتم على المفتاح الخاص إلى ssh-agent(1).

HostKeyAgent
    يحدد مقبس نطاق يونكس (UNIX-domain socket) المستخدم للتواصل مع عميل (agent) لديه صلاحية الوصول إلى مفاتيح المضيف الخاصة. إذا حُدد السلسلة النصية "SSH_AUTH_SOCK" ، فسيُقرأ موقع المقبس من متغير البيئة SSH_AUTH_SOCK.

HostKeyAlgorithms
    يحدد خوارزميات توقيع مفتاح المضيف التي يقدمها الخادم. المبدئي لهذا الخيار هو:

        ssh-ed25519-cert-v01@openssh.com,
        ecdsa-sha2-nistp256-cert-v01@openssh.com,
        ecdsa-sha2-nistp384-cert-v01@openssh.com,
        ecdsa-sha2-nistp521-cert-v01@openssh.com,
        sk-ssh-ed25519-cert-v01@openssh.com,
        sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
        webauthn-sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
        rsa-sha2-512-cert-v01@openssh.com,
        rsa-sha2-256-cert-v01@openssh.com,
        ssh-ed25519,
        ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
        sk-ssh-ed25519@openssh.com,
        sk-ecdsa-sha2-nistp256@openssh.com,
        webauthn-sk-ecdsa-sha2-nistp256@openssh.com,
        rsa-sha2-512,rsa-sha2-256

    يمكن أيضًا الحصول على قائمة خوارزميات التوقيع المتاحة باستخدام "ssh -Q HostKeyAlgorithms".

IgnoreRhosts
    يحدد ما إذا كانت ملفات .rhosts و .shosts الخاصة بكل مستخدم ستُتجاهل أثناء HostbasedAuthentication. تظل ملفات النظام الشاملة /etc/hosts.equiv و /etc/ssh/shosts.equiv مستخدمة بغض النظر عن هذا التعيين.

    القيم المقبولة هي yes (المبدئي) لتجاهل جميع الملفات الخاصة بالمستخدمين، أو shosts-only للسماح باستخدام .shosts مع تجاهل .rhosts ، أو no للسماح بكل من .shosts و rhosts.

IgnoreUserKnownHosts
    يحدد ما إذا كان ينبغي لـ sshd(8) تجاهل ملف الـ ~/.ssh/known_hosts الخاص بالمستخدم أثناء HostbasedAuthentication واستخدام ملف المضيفين المعروفين الشامل للنظام فقط /etc/ssh/ssh_known_hosts. المبدئي هو “no”.

Include
    تُضمّن ملف أو ملفات الإعداد المحددة. يمكن تحديد مسارات متعددة، ويمكن لكل مسار أن يحتوي على محارف برية لـ glob(7) والتي ستُوسع وتُعالج بالترتيب المعجمي. يُفترض أن الملفات التي لا تحتوي على مسارات مطلقة موجودة في دليل /etc/ssh. قد يظهر توجيه Include داخل كتلة Match لإجراء تضمين مشروط.

IPQoS
    تُحدد قيمة نقطة ترميز حقل الخدمات المتمايزة Differentiated Services Field Codepoint (DSCP) للاتصال. القيم المقبولة هي af11 ، af12 ، af13 ، af21 ، af22 ، af23 ، af31 ، af32 ، af33 ، af41 ، af42 ، af43 ، cs0 ، cs1 ، cs2 ، cs3 ، cs4 ، cs5 ، cs6 ، cs7 ، ef ، le ، أو قيمة رقمية، أو none لاستخدام المبدئي لنظام التشغيل. يمكن أن يأخذ هذا الخيار وسيطًا واحدًا أو وسيطين، مفصولين بمسافة بيضاء. إذا حُدد وسيط واحد، فإنه يُستخدم كفئة للحزمة دون شروط. وإذا حُدد قيمتين، فتُختار الأولى تلقائيًا للجلسات التفاعلية والثانية للجلسات غير التفاعلية. المبدئي هو ef (التوجيه المعجل Expedited Forwarding) للجلسات التفاعلية و none (المبدئي لنظام التشغيل) للجلسات غير التفاعلية.

KbdInteractiveAuthentication
    يحدد ما إذا كان يُسمح بالاستيثاق التفاعلي عبر لوحة المفاتيح. المبدئي هو yes. يجب أن يكون المعطى الممرر لهذه الكلمة المفتاحية yes أو no. يُعد ChallengeResponseAuthentication اسماً مستعاراً مهجوراً لهذا الخيار.

KerberosAuthentication
    يُحدد ما إذا كانت كلمة السر التي يقدمها المستخدم لـ PasswordAuthentication ستُتحقق من صحتها من خلال مركز توزيع مفاتيح كيربيروس (Kerberos KDC). لاستخدام هذا الخيار، يحتاج الخادم إلى ملف servtab الخاص بكيربيروس والذي يسمح بالتحقق من هوية الـ KDC. المبدئي هو no.

KerberosGetAFSToken
    إذا كان نظام الملفات أندرو (AFS) نشطًا وكان لدى المستخدم بطاقة كيربيروس 5 (Kerberos 5 TGT)، فستُحاول الحصول على رمز AFS المميز (AFS token) قبل الوصول إلى دليل منزل المستخدم. المبدئي هو no.

KerberosOrLocalPasswd
    إذا فشلت مصادقة كلمة السر من خلال كيربيروس، فستُتحقق صحة كلمة السر عبر أي آلية محلية إضافية مثل ملف /etc/passwd. المبدئي هو yes.

KerberosTicketCleanup
    يُحدد ما إذا كان ملف ذاكرة التخزين المؤقت للتذاكر (ticket cache file) الخاص بالمستخدم سيُدمر تلقائيًا عند تسجيل الخروج. المبدئي هو yes.

KexAlgorithms
    يحدد خوارزميات تبادل المفاتيح (KEX) المسموح بها والتي سيقدمها الخادم للعملاء. ترتيب هذه القائمة ليس مهمًا، لأن العميل هو من يحدد ترتيب التفضيل. يجب الفصل بين الخوارزميات المتعددة بفاصلة.

    إذا بدأت القائمة المحددة بمحرف ‘+’ ، فسَتُلحَق الخوارزميات المحددة بالمجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة المحددة بمحرف ‘-’ ، فسَتُزَال الخوارزميات المحددة (بما في ذلك الرموز العامة) من المجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة المحددة بمحرف ‘^’ ، فسَتُوضَع الخوارزميات المحددة في بداية المجموعة المبدئية.

    الخوارزميات المدعومة هي:

    curve25519-sha256
    curve25519-sha256@libssh.org
    diffie-hellman-group1-sha1
    diffie-hellman-group14-sha1
    diffie-hellman-group14-sha256
    diffie-hellman-group16-sha512
    diffie-hellman-group18-sha512
    diffie-hellman-group-exchange-sha1
    diffie-hellman-group-exchange-sha256
    ecdh-sha2-nistp256
    ecdh-sha2-nistp384
    ecdh-sha2-nistp521
    mlkem768x25519-sha256
    sntrup761x25519-sha512
    sntrup761x25519-sha512@openssh.com

    المبدئي هو:

        mlkem768x25519-sha256,
        sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com,
        curve25519-sha256,curve25519-sha256@libssh.org,
        ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521

    يمكن أيضًا الحصول على قائمة خوارزميات تبادل المفاتيح المدعومة باستخدام الأمر "ssh -Q KexAlgorithms".

ListenAddress
    تُحدد العناوين المحلية التي يجب أن يستمع (listen) إليها sshd(8). يمكن استخدام الأشكال التالية:

    ListenAddress hostname|address [rdomain domain]
    ListenAddress hostname:port [rdomain domain]
    ListenAddress IPv4_address:port [rdomain domain]
    ListenAddress [hostname|address]:port [rdomain domain]

    يطلب المؤهل الاختياري rdomain من sshd(8) الإنصات في نطاق توجيه صريح. إذا لم يُحدد port ، فسينصت sshd على العنوان وجميع خيارات Port المحددة. المبدئي هو الإنصات على جميع العناوين المحلية في نطاق التوجيه المبدئي الحالي. يُسمح بخيارات ListenAddress متعددة.

    على نظام لينكس، تُنفّذ نطاقات التوجيه باستخدام نطاقات التوجيه وإعادة التوجيه المبدئية (VRFs)؛ لمزيد من المعلومات، انظر ip-vrf(8).

LoginGraceTime
    يقوم الخادم بفصل الاتصال بعد هذا الوقت إذا لم يقم المستخدم بالولوج بنجاح. إذا كانت القيمة 0، فلا يوجد حد زمني. المبدئي هو 120 ثانية.

LogLevel
    يحدد مستوى الإسهاب (verbosity level) المستخدم عند تسجيل الرسائل من sshd(8). القيم الممكنة هي: QUIET، و FATAL، و ERROR، و INFO، و VERBOSE، و DEBUG، و DEBUG1، و DEBUG2، و DEBUG3. المبدئي هو INFO. المستويان DEBUG و DEBUG1 متكافئان. يحدد كل من DEBUG2 و DEBUG3 مستويات أعلى من مخرجات التنقيب عن الأخطاء (debugging). التسجيل بمستوى DEBUG ينتهك خصوصية المستخدمين ولا يُنصح به.

LogVerbose
    تحديد تجاوز (override) واحد أو أكثر لـ LogLevel. يتكون التجاوز من قائمة أنماط واحدة أو أكثر تطابق ملف المصدر، والدالة، ورقم السطر لفرض تسجيل مفصل لها. على سبيل المثال، نمط التجاوز يكون:

        kex.c:*:1000,*:kex_exchange_identification():*,packet.c:*

    سيفعل التسجيل المفصل للسطر 1000 من kex.c ، وكل شيء في دالة kex_exchange_identification() ، وجميع الأكواد في ملف packet.c. هذا الخيار مخصص للتنقيح ولا توجد تجاوزات مفعّلة مبدئيًا.

MACs
    تُحدد خوارزميات كود مصادقة الرسائل (MAC) المتاحة. تُستخدم خوارزمية MAC لحماية سلامة البيانات (data integrity). يجب الفصل بين الخوارزميات المتعددة بفاصلة. إذا بدأت القائمة المحددة بمحرف الفتحة ‘+’ ، فسيتم إلحاق الخوارزميات المحددة بالمجموعة المبدئية بدلاً من استبدالها. وإذا بدأت بمحرف الطرح ‘-’ ، فسيتم إزالة الخوارزميات المحددة (بما في ذلك المحارف البرية) من المجموعة المبدئية بدلاً من استبدالها. وإذا بدأت بمحرف الأس ‘^’ ، فسيتم وضع الخوارزميات المحددة في مقدمة المجموعة المبدئية.

    الخوارزميات التي تحتوي على اللاحقة "-etm" تقوم بحساب الـ MAC بعد التشفير (التشفير أولاً ثم كود المصادقة encrypt-then-mac). تعتبر هذه الخوارزميات أكثر أمانًا ويوصى باستخدامها. أكواد MAC المدعومة هي:

    hmac-md5
    hmac-md5-96
    hmac-sha1
    hmac-sha1-96
    hmac-sha2-256
    hmac-sha2-512
    umac-64@openssh.com
    umac-128@openssh.com
    hmac-md5-etm@openssh.com
    hmac-md5-96-etm@openssh.com
    hmac-sha1-etm@openssh.com
    hmac-sha1-96-etm@openssh.com
    hmac-sha2-256-etm@openssh.com
    hmac-sha2-512-etm@openssh.com
    umac-64-etm@openssh.com
    umac-128-etm@openssh.com

    المبدئي هو:

        umac-64-etm@openssh.com,umac-128-etm@openssh.com,
        hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,
        hmac-sha1-etm@openssh.com,
        umac-64@openssh.com,umac-128@openssh.com,
        hmac-sha2-256,hmac-sha2-512,hmac-sha1

    يمكن أيضًا الحصول على قائمة خوارزميات MAC المتاحة باستخدام "ssh -Q mac".

Match
    تُقدم كتلة شرطية (conditional block). إذا استوفي جميع المعايير في سطر Match ، فإن الكلمات المفتاحية في السطور التالية تتجاوز تلك المحددة في القسم العام لملف الإعداد، حتى الوصول إلى سطر Match آخر أو إلى نهاية الملف. إذا ظهرت كلمة مفتاحية في عدة كتل Match مستوفاة الشروط، فسيتم تطبيق النسخة الأولى فقط من الكلمة المفتاحية.

    المعطيات الممررة إلى Match هي زوج أو أكثر من (المعيار-النمط) أو أحد معايير الرمز الواحد: All ، الذي يطابق جميع المعايير، أو Invalid-User ، الذي يطابق عندما لا يتوافق اسم المستخدم المطلوب مع أي حساب معروف. المعايير المتاحة هي User ، و Group ، و Host ، و LocalAddress ، و LocalPort ، و Version ، و RDomain ، و Address (حيث يمثل RDomain نطاق التوجيه الذي استُقبل الاتصال عليه؛ انظر ip-vrf(8)).

    قد تتكون أنماط المطابقة من إدخالات مفردة أو قوائم مفصولة بفاصلة، ويمكنها استخدام محارف البرية وعوامل النفي (negation) الموصوفة في قسم PATTERNS في ssh_config(5).

    قد تحتوي الأنماط في معيار Address بالإضافة إلى ذلك على عناوين للمطابقة بتنسيق CIDR (العنوان/طول القناع)، مثل 192.0.2.0/24 أو 2001:db8::/32. لاحظ أن طول القناع المقدم يجب أن يكون متسقًا مع العنوان؛ حيث يعد خطأً تحديد طول قناع طويل جدًا بالنسبة للعنوان أو قناع يحتوي على بتات نشطة في جزء المضيف من العنوان. على سبيل المثال، 192.0.2.0/33 و 192.0.2.0/8 على التوالي.

    تطابق الكلمة المفتاحية Version مقابل سلسلة نص الإصدار الخاص بـ sshd(8) ، على سبيل المثال “OpenSSH_10.0”.

    لا يمكن استخدام سوى مجموعة فرعية من الكلمات المفتاحية في السطور التي تلي الكلمة المفتاحية Match. الكلمات المفتاحية المتاحة هي AcceptEnv ، و AllowAgentForwarding ، و AllowGroups ، و AllowStreamLocalForwarding ، و AllowTcpForwarding ، و AllowUsers ، و AuthenticationMethods ، و AuthorizedKeysCommand ، و AuthorizedKeysCommandUser ، و AuthorizedKeysFile ، و AuthorizedPrincipalsCommand ، و AuthorizedPrincipalsCommandUser ، و AuthorizedPrincipalsFile ، و Banner ، و CASignatureAlgorithms ، و ChannelTimeout ، و ChrootDirectory ، و ClientAliveCountMax ، و ClientAliveInterval ، و DenyGroups ، و DenyUsers ، و DisableForwarding ، و ExposeAuthInfo ، و ForceCommand ، و GatewayPorts ، و GSSAPIAuthentication ، و HostbasedAcceptedAlgorithms ، و HostbasedAuthentication ، و HostbasedUsesNameFromPacketOnly ، و IgnoreRhosts ، و Include ، و IPQoS ، و KbdInteractiveAuthentication ، و KerberosAuthentication ، و LogLevel ، و MaxAuthTries ، و MaxSessions ، و PAMServiceName ، و PasswordAuthentication ، و PermitEmptyPasswords ، و PermitListen ، و PermitOpen ، و PermitRootLogin ، و PermitTTY ، و PermitTunnel ، و PermitUserRC ، و PubkeyAcceptedAlgorithms ، و PubkeyAuthentication ، و PubkeyAuthOptions ، و RefuseConnection ، و RekeyLimit ، و RevokedKeys ، و SetEnv ، و StreamLocalBindMask ، و StreamLocalBindUnlink ، و TrustedUserCAKeys ، و UnusedConnectionTimeout ، و X11DisplayOffset ، و X11Forwarding و X11UseLocalhost.

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

MaxSessions
    يُحدد الحد الأقصى لعدد جلسات الغلاف (shell) أو ولوج أو النظام الفرعي (مثل sftp) المفتوحة المسموح بها لكل اتصال شبكي. يمكن إنشاء جلسات متعددة بواسطة العملاء الذين يدعمون تعدد الإرسال للاتصالات (connection multiplexing). تعيين MaxSessions إلى 1 سيؤدي فعليًا إلى تعطيل تعدد إرسال الجلسات، في حين أن تعيينه إلى 0 سيمنع جميع جلسات الغلاف وتسجيل الدخول والنظام الفرعي مع الاستمرار في السماح بالتوجيه. المبدئي هو 10.

MaxStartups
    يُحدد الحد الأقصى لعدد الاتصالات المتزامنة غير المصادق عليها لعفريت SSH. ستُسقط (drop) الاتصالات الإضافية حتى تنجح المصادقة أو تنتهي مهلة LoginGraceTime الخاصة بالاتصال.

    بدلاً من ذلك، يمكن تمكين الإسقاط المبكر العشوائي (random early drop) عن طريق تحديد القيم الثلاث المفصولة بنقطتين بالصيغة start:rate:full (على سبيل المثال "10:30:60"). المبدئي هو 10:30:100. سيرفض sshd(8) محاولات الاتصال باحتمالية rate/100 (أي 30%) إذا كان هناك حاليًا عدد start (أي 10) من الاتصالات غير المصادق عليها. تزداد الاحتمالية خطيًا وتُرفض جميع محاولات الاتصال إذا وصل عدد الاتصالات غير المصادق عليها إلى full (أي 60).

ModuliFile
    يحدد ملف moduli(5) الذي يحتوي على مجموعات ديفي-هيلمان (Diffie-Hellman groups) المستخدمة في طرق تبادل المفاتيح “diffie-hellman-group-exchange-sha1” و “diffie-hellman-group-exchange-sha256”. المبدئي هو /etc/ssh/moduli.

PAMServiceName
    يُحدد اسم الخدمة المستخدم لوحدات المصادقة القابلة للتوصيل (PAM) للمصادقة، والتفويض، وعناصر التحكم في الجلسة عند تمكين خيار UsePAM. المبدئي هو sshd.

PasswordAuthentication
    يحدد ما إذا كان مسموحًا بالمصادقة عبر كلمة السر. المبدئي هو yes.

PermitEmptyPasswords
    عند السماح بالمصادقة عبر كلمة السر، يحدد هذا الخيار ما إذا كان الخادم يسمح بالولوج إلى الحسابات ذات سلاسل كلمات السر الفارغة. المبدئي هو no.

PermitListen
    تُحدد العناوين/المنافذ التي يمكن لتوجيه منافذ TCP البعيدة الاستماع عليها. يجب أن تكون مواصفات الاستماع بأحد الأشكال التالية:

    PermitListen port
    PermitListen host:port

    يمكن تحديد أذونات متعددة عن طريق الفصل بينها بمسافات بيضاء. يمكن استخدام الوسيط any لإزالة جميع القيود والسماح بأي طلبات استماع. ويمكن استخدام الوسيط none لحظر جميع طلبات الاستماع. قد يحتوي اسم المضيف على محارف برية كما هو موصوف في قسم PATTERNS في ssh_config(5). يمكن أيضًا استخدام محرف البرية ‘*’ بدلاً من رقم المنفذ للسماح بجميع المنافذ. بشكل مبدئي، يُسمح بجميع طلبات الاستماع لتوجيه المنافذ. لاحظ أن خيار GatewayPorts قد يقيد بشكل أكبر العناوين التي يمكن الاستماع عليها. لاحظ أيضًا أن ssh(1) سيطلب مضيف استماع باسم “localhost” إذا لم يطلب مضيف استماع محدد، ويُعالج هذا الاسم بشكل مختلف عن عناوين localhost الصريحة مثل “127.0.0.1” و “::1”.

PermitOpen
    يحدد الوجهات التي يُسمح بتوجيه منافذ TCP إليها. يجب أن تكون مواصفات التوجيه بأحد الأشكال التالية:

    PermitOpen host:port
    PermitOpen IPv4_addr:port
    PermitOpen [IPv6_addr]:port

    يمكن تحديد عمليات توجيه متعددة عن طريق الفصل بينها بمسافات بيضاء. يُستخدم الوسيط any لإزالة جميع القيود والسماح بأي طلبات توجيه. ويُستخدم الوسيط none لحظر جميع طلبات التوجيه. يُستخدم محرف البرية ‘*’ للمضيف أو المنفذ للسماح بجميع المضيفين أو المنافذ على التوالي. خلاف ذلك، لا تُجرى مطابقة للأنماط أو عمليات بحث عن العناوين للأسماء المقدمة. بشكل مبدئي، يُسمح بجميع طلبات توجيه المنافذ.

PermitRootLogin
    يحدد ما إذا كان بإمكان المستخدم الجذر (root) ولوج باستخدام ssh(1). يجب أن يكون الوسيط إما yes ، أو prohibit-password ، أو forced-commands-only ، أو no. المبدئي هو prohibit-password.

    إذا ضُبط هذا الخيار على prohibit-password (أو اسمه المستعار المهجور، without-password) ، يُعطّل الاستيثاق بكلمة السر والاستيثاق التفاعلي عبر لوحة المفاتيح للمستخدم الجذر (root).

    إذا ضُبط هذا الخيار على forced-commands-only ، فسيُسمح بولوج المستخدم الجذر باستخدام استيثاق المفتاح العلني، ولكن فقط إذا حُدّد خيار الأمر command (والذي قد يكون مفيدًا لأخذ النسخ الاحتياطية عن بُعد حتى لو كان ولوج المستخدم الجذر غير مسموح به عادةً). تُعطّل جميع طرق الاستيثاق الأخرى للمستخدم الجذر.

    إذا ضُبط هذا الخيار على no ، فلا يُسمح للمستخدم الجذر بالولوج.

PermitTTY
    يحدد ما إذا كان تخصيص الطرفية الوهمية pty(4) مسموحًا به. القيمة المبدئية هي yes.

PermitTunnel
    يحدد ما إذا كان توجيه جهاز النفق tun(4) مسموحًا به. يجب أن يكون المعطى yes ، أو point-to-point (الطبقة 3)، أو ethernet (الطبقة 2)، أو no. يتيح تحديد yes كلا الخيارين point-to-point و ethernet. القيمة المبدئية هي no.

    بصرف النظر عن هذا الضبط، يجب أن تسمح أذونات جهاز tun(4) المحدد للمستخدم بالوصول إليه.

PermitUserEnvironment
    يُحدد ما إذا كانت الخيارات في ~/.ssh/environment و environment= في ملف ~/.ssh/authorized_keys تُعالج بواسطة sshd(8). الخيارات الصالحة هي yes أو no أو قائمة أنماط تحدد أسماء متغيرات البيئة التي تُقبل (على سبيل المثال "LANG,LC_*"). القيمة المبدئية هي no. قد يُتيح تمكين معالجة البيئة للمستخدمين تجاوز قيود الوصول في بعض التشكيلات باستخدام آليات مثل LD_PRELOAD.

PermitUserRC
    يحدد ما إذا كان أي ملف ~/.ssh/rc يُنفّذ. القيمة المبدئية هي yes.

PerSourceMaxStartups
    يحدد عدد الاتصالات غير المستوثق منها المسموح بها من عنوان مصدر معين، أو “none” إذا لم يكن هناك حد. يُطبّق هذا الحد بالإضافة إلى MaxStartups ، أيهما أقل. القيمة المبدئية هي none.

PerSourceNetBlockSize
    يحدد عدد بتات عنوان المصدر التي تُجمع معًا لأغراض تطبيق حدود PerSourceMaxStartups. يمكن تحديد قيم لـ IPv4 واختياريًا لـ IPv6، مفصولة بنقطتين رأسيتين. القيمة المبدئية هي 32:128 ، مما يعني أن كل عنوان يُعامل على حدة.

PerSourcePenalties
    يُتحكم في العقوبات المفروضة على الحالات المختلفة التي قد تمثل هجمات على sshd(8). إذا فُرِضت عقوبة على عميل، فسيُرفض اتصال عنوان مصدره وأي عناوين أخرى في الشبكة نفسها، كما هو محدد بواسطة PerSourceNetBlockSize ، لفترة من الوقت.

    لا تؤثر العقوبة على الاتصالات المتزامنة الجارية، ولكن العقوبات المتعددة من المصدر نفسه عبر الاتصالات المتزامنة ستتراكم حتى تصل إلى الحد الأقصى. وعلى العكس من ذلك، لا تُطبّق العقوبات حتى يتراكم حد أدنى من وقت العتبة.

    تُمكّن العقوبات مبدئيًا مع الإعدادات المبدئية المدرجة أدناه ولكن يمكن تعطيلها باستخدام الكلمة المفتاحية no. يمكن تجاوز القيم المبدئية عن طريق تحديد كلمة مفتاحية واحدة أو أكثر من الكلمات أدناه، مفصولة بمسافة بيضاء. تقبل جميع الكلمات المفتاحية معطيات، مثل: "crash:2m".

    crash:duration
        يحدد مدة رفض العملاء الذين يتسببون في انهيار sshd(8) (المبدئي: 90s).

    authfail:duration
        يحدد مدة رفض العملاء الذين يقطعون الاتصال بعد إجراء محاولة استيثاق غير ناجحة أو أكثر (المبدئي: 5s).

    invaliduser:duration
        يحدد مدة رفض العملاء الذين يحاولون الولوج باستخدام مستخدم غير صالح (المبدئي: 5s).

    refuseconnection:duration
        يحدد مدة رفض العملاء الذين حُظر اتصالهم إداريًا عبر خيار RefuseConnection (المبدئي: 10s).

    noauth:duration
        يحدد مدة رفض العملاء الذين يقطعون الاتصال دون محاولة الاستيثاق (المبدئي: 1s). ينبغي استخدام مهلة الانقطاع هذه بحذر وإلا فقد تعاقب أدوات الفحص المشروعة مثل ssh-keyscan(1).

    grace-exceeded:duration
        يحدد مدة رفض العملاء الذين يفشلون في الاستيثاق بعد مرور وقت LoginGraceTime (المبدئي: 10s).

    max:duration
        يحدد الحد الأقصى للوقت الذي سيُرفض فيه وصول نطاق عناوين مصدر معين (المبدئي: 10m). ستتراكم العقوبات المتكررة حتى تصل إلى هذا الحد الأقصى.

    min:duration
        يحدد الحد الأدنى للعقوبة التي يجب أن تراكم قبل بدء التنفيذ (المبدئي: 15s).

    max-sources4:number, max-sources6:number
        يحدد الحد الأقصى لعدد نطاقات عناوين IPv4 و IPv6 للعملاء المطلوب تتبعها لفرض العقوبات (المبدئي: 65536 لكليهما).

    overflow:mode
        يتحكم في سلوك الخادوم عند تجاوز max-sources4 أو max-sources6. يوجد وضاع تشغيل: deny-all ، الذي يرفض جميع الاتصالات الواردة باستثناء تلك المعفاة عبر قائمة PerSourcePenaltyExemptList حتى تنتهي صلاحية العقوبة، و permissive ، الذي يسمح بالاتصالات الجديدة عن طريق إزالة العقوبات الحالية مبكرًا (المبدئي: permissive). لاحظ أن عقوبات العميل التي تقل عن عتبة الحد الأدنى min تُحسب ضمن العدد الإجمالي للعقوبات المتتبعة. تُتتبّع عناوين IPv4 و IPv6 بشكل منفصل، لذا فإن الطفح في أحدهما لن يؤثر على الآخر.

    overflow6:mode
        يسمح بتحديد وضع طفح مختلف لعناوين IPv6. السلوك المبدئي هو استخدام وضع الطفح نفسه الذي حُدّد لـ IPv4.

PerSourcePenaltyExemptList
    يحدد قائمة مفصولة بفاصلة من العناوين لإعفائها من العقوبات. قد تحتوي هذه القائمة على محارف بديلة ونطاقات عناوين بتنسيق CIDR‏ (address/masklen). لاحظ أن طول القناع المقدم يجب أن يكون متسقًا مع العنوان - يُعد تحديد طول قناع طويل جدًا للعنوان أو قناع يحتوي على بتات مضبوطة في جزء المضيف من العنوان خطأً. على سبيل المثال، 192.0.2.0/33 و192.0.2.0/8، على التوالي. السلوك المبدئي هو عدم إعفاء أي عناوين.

PidFile
    يحدد الملف الذي يحتوي على معرف العملية لعفريت SSH، أو none لعدم كتابة أي ملف. القيمة المبدئية هي /run/sshd.pid.

Port
    يُحدد رقم المنفذ الذي يستمع إليه sshd(8). القيمة المبدئية هي 22. يُسمح بخيارات متعددة من هذا النوع. انظر أيضًا ListenAddress.

PrintLastLog
    يحدد ما إذا كان ينبغي لـ sshd(8) طباعة تاريخ ووقت آخر ولوج للمستخدم عندما يلج تفاعليًا. القيمة المبدئية هي yes.

PrintMotd
    يحدد ما إذا كان ينبغي لـ sshd(8) طباعة /etc/motd عندما يلج المستخدم تفاعليًا. (في بعض الأنظمة، تُطبع أيضًا بواسطة الصدفة، أو ملف /etc/profile ، أو ما يعادلهما.) القيمة المبدئية هي yes.

PubkeyAcceptedAlgorithms
    يحدد خوارزميات التوقيع التي ستقبل لاستيثاق المفتاح العلني كقائمة من الأنماط المفصولة بفاصلة. وبدلاً من ذلك، إذا بدأت القائمة المحددة بمحرف ‘+’ ، فستُلحق الخوارزميات المحددة بالمجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة المحددة بمحرف ‘-’ ، فستُزال الخوارزميات المحددة (بما في ذلك المحارف البديلة) من المجموعة المبدئية بدلاً من استبدالها. وإذا بدأت القائمة المحددة بمحرف ‘^’ ، فستُوضع الخوارزميات المحددة في رأس المجموعة المبدئية. القيمة المبدئية لهذا الخيار هي:

        ssh-ed25519-cert-v01@openssh.com,
        ecdsa-sha2-nistp256-cert-v01@openssh.com,
        ecdsa-sha2-nistp384-cert-v01@openssh.com,
        ecdsa-sha2-nistp521-cert-v01@openssh.com,
        sk-ssh-ed25519-cert-v01@openssh.com,
        sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
        webauthn-sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
        rsa-sha2-512-cert-v01@openssh.com,
        rsa-sha2-256-cert-v01@openssh.com,
        ssh-ed25519,
        ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
        sk-ssh-ed25519@openssh.com,
        sk-ecdsa-sha2-nistp256@openssh.com,
        webauthn-sk-ecdsa-sha2-nistp256@openssh.com,
        rsa-sha2-512,rsa-sha2-256

    يمكن أيضًا الحصول على قائمة خوارزميات التوقيع المتاحة باستخدام "ssh -Q PubkeyAcceptedAlgorithms".

PubkeyAuthOptions
    يُضبط خيارًا واحدًا أو أكثر من خيارات استيثاق المفتاح العلني. الكلمات المفتاحية المدعومة هي: none (المبدئي؛ ويشير إلى عدم تمكين أي خيارات إضافية)، و touch-required و verify-required.

    يتسبب خيار touch-required في جعل استيثاق المفتاح العلني باستخدام خوارزمية موثق FIDO (أي ecdsa-sk أو ed25519-sk) يتطلب دائمًا أن يشهد التوقيع على أن مستخدمًا حاضرًا فعليًا قد أكد الاستيثاق صراحةً (عادةً عن طريق لمس الموثق). يتطلب sshd(8) مبدئيًا حضور المستخدم ما لم يُتجاوز ذلك باستخدام خيار في authorized_keys. تعطل راية touch-required هذا التجاوز.

    يتطلب خيار verify-required أن يشهد توقيع مفتاح FIDO بأنه تحقق من المستخدم، على سبيل المثال عبر رمز PIN.

    ليس لخياري touch-required أو verify-required أي تأثير على أنواع المفاتيح العلنية الأخرى غير التابعة لـ FIDO.

PubkeyAuthentication
    يحدد ما إذا كان استيثاق المفتاح العلني مسموحًا به. القيمة المبدئية هي yes.

RefuseConnection
    يشير إلى أنه يجب على sshd(8) إنهاء الاتصال دون قيد أو شرط. بالإضافة إلى ذلك، قد تُسجّل عقوبة refuseconnection ضد مصدر الاتصال إذا كانت خيارات PerSourcePenalties مُمكّنة. هذا الخيار مفيد فقط في كتلة Match.

RekeyLimit
    يُحدد الحد الأقصى لكمية البيانات التي يمكن إرسالها أو استقبالها قبل إعادة تفاوض مفتاح الجلسة، متبوعًا اختياريًا بالحد الأقصى للوقت الذي يمكن أن يمر قبل إعادة تفاوض مفتاح الجلسة. يُحدد المعطى الأول بالبايت وقد يحتوي على لاحقة ‘K’ ، أو ‘M’ ، أو ‘G’ للإشارة إلى كيلوبايت، أو ميجابايت، أو جيجابايت، على التوالي. تتراوح القيمة المبدئية بين ‘1G’ و ‘4G’ ، اعتمادًا على التشفير. تُحدد القيمة الثانية الاختيارية بالثواني ويمكن أن تستخدم أيًا من الوحدات الموثقة في قسم TIME FORMATS. القيمة المبدئية لـ RekeyLimit هي default none ، مما يعني أن إعادة تشكيل المفاتيح تُجرى بعد إرسال أو استقبال كمية البيانات المبدئية للتشفير ولا تُجرى أي إعادة تشكيل للمفاتيح على أساس الوقت.

RequiredRSASize
    يحدد الحد الأدنى لحجم مفتاح RSA (بالبت) الذي سيقبله sshd(8). ستُرفض مفاتيح الاستيثاق القائمة على المستخدم والمضيف التي تقل عن هذا الحد. القيمة المبدئية هي 1024 بت. لاحظ أنه لا يمكن إلا رفع هذا الحد عن القيمة المبدئية.

RevokedKeys
    يحدد ملف المفاتيح العلنية الملغاة، أو none لعدم استخدام أحدها. ستُرفض المفاتيح المدرجة في هذا الملف في استيثاق المفاتيح العلنية. لاحظ أنه إذا كان هذا الملف غير قابل للقراءة، فسيُرفض استيثاق المفتاح العلني لجميع المستخدمين. يمكن تحديد المفاتيح كفملف نصي، يدرج مفتاحًا علنيًا واحدًا في كل سطر، أو كقائمة إلغاء مفاتيح OpenSSH ‏(KRL) تُنشأ بواسطة ssh-keygen(1). يمكن الرجوع إلى هذا الملف في كل محاولة استيثاق بمفتاح علني يتلقاها sshd(8) ويجب أن تكون محتوياته متسقة في جميع الأوقات، لذا ينبغي استبداله ذريًا فقط وعدم تعديله في مكانه مطلقًا أثناء تشغيل الخادوم. لمزيد من المعلومات حول قوائم KRL، انظر قسم KEY REVOCATION LISTS في ssh-keygen(1).

SecurityKeyProvider
    يُحدد مسارًا إلى مكتبة ستُستخدم عند تحميل المفاتيح المستضافة على موثق FIDO، مما يتجاوز السلوك المبدئي المتمثل في استخدام دعم USB HID المدمج.

SetEnv
    يحدد متغير بيئة واحدًا أو أكثر لضبطه في الجلسات الفرعية التي يبدأها sshd(8) على صيغة “NAME=VALUE”. يمكن وضع قيمة البيئة بين علامتي اقتباس (على سبيل المثال إذا كانت تحتوي على محارف مسافات بيضاء). تتجاوز متغيرات البيئة المضبوطة بواسطة SetEnv البيئة المبدئية وأي متغيرات يحددها المستخدم عبر AcceptEnv أو PermitUserEnvironment.

SshdAuthPath
    يتجاوز المسار المبدئي للملف الثنائي sshd-auth الذي يُستدعى لإكمال استيثاق المستخدم. المبدئي هو /usr/lib/openssh/sshd-auth. هذا الخيار مخصص للاستخدام في الاختبارات.

SshdSessionPath
    يتجاوز المسار المبدئي للملف الثنائي sshd-session الذي يُستدعى لمعالجة كل اتصال. المبدئي هو /usr/lib/openssh/sshd-session. هذا الخيار مخصص للاستخدام في الاختبارات.

StreamLocalBindMask
    يضبط قناع نمط إنشاء الملفات الثماني (umask) المستخدم عند إنشاء ملف مقبس نطاق يونكس لتوجيه المنافذ المحلي أو البعيد. يُستخدم هذا الخيار فقط لتوجيه المنافذ إلى ملف مقبس نطاق يونكس.

    القيمة المبدئية هي 0177، والتي تنشئ ملف مقبس نطاق-يونكس قابل للقراءة والكتابة من قبل المالك فقط. لاحظ أن ليس كل أنظمة التشغيل تحترم وضع الملف على ملفات مقابس نطاق-يونكس.

StreamLocalBindUnlink
    يُحدد ما إذا كان يجب إزالة ملف مقبس نطاق Unix الحالي لتوجيه المنفذ المحلي أو عن بعد قبل إنشاء ملف جديد. إذا كان ملف المقبس موجودًا بالفعل ولم يُمكن StreamLocalBindUnlink ، فلن يتمكن sshd من توجيه المنفذ إلى ملف مقبس نطاق Unix. يُستخدم هذا الخيار فقط لتوجيه المنفذ إلى ملف مقبس نطاق Unix.

    يجب أن يكون المعطى yes أو no. القيمة المبدئية هي no.

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

Subsystem
    يضبط نظامًا فرعيًا خارجيًا (مثل عفريت نقل الملفات). يجب أن تكون المعطيات اسم نظام فرعي وأمرًا (مع معطيات اختيارية) لتنفيذه عند طلب النظام الفرعي.

    ينفّذ الأمر sftp-server النظام الفرعي لنقل الملفات SFTP.

    وبدلاً من ذلك، ينفّذ الاسم internal-sftp خادوم SFTP داخل العملية. قد يبسط هذا التشكيلات التي تستخدم ChrootDirectory لفرض جذر نظام ملفات مختلف على العملاء. يقبل هذا الخيار معطيات سطر الأوامر نفسها التي يقبلها sftp-server وعلى الرغم من أنه يعمل داخل العملية، فإن الإعدادات مثل LogLevel أو SyslogFacility لا تنطبق عليه ويجب ضبطها صراحةً عبر معطيات سطر الأوامر.

    مبدئيًا، لا تُعرّف أي أنظمة فرعية.

SyslogFacility
    يُعطى رمز المرفق الذي يُستخدم عند تسجيل الرسائل من sshd(8). القيم المحتملة هي: DAEMON و USER و AUTH و LOCAL0 و LOCAL1 و LOCAL2 و LOCAL3 و LOCAL4 و LOCAL5 و LOCAL6 و LOCAL7. القيمة المبدئية هي AUTH.

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

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

    لتعطيل رسائل إبقاء الاتصال الحي لـ TCP، يجب ضبط القيمة على no.

    كان هذا الخيار يُسمى سابقاً KeepAlive.

TrustedUserCAKeys
    يحدد ملفًا يحتوي على المفاتيح العلنية لسلطات الشهادات الموثوق بها لتوقيع شهادات المستخدمين لغرض الاستيثاق، أو none لعدم استخدام أحدها. تُدرج المفاتيح مفتاحًا واحدًا في كل سطر؛ ويُسمح بالأسطر الفارغة والتعليقات التي تبدأ بـ ‘#’. إذا قُدّمت شهادة للاستيثاق وكان مفتاح سلطة الشهادات (CA) الموقع لها مدرجًا في هذا الملف، فيمكن استخدامها للاستيثاق لأي مستخدم مدرج في قائمة الكيانات الرئيسة للشهادة. لاحظ أن الشهادات التي تفتقر إلى قائمة كيانات رئيسة لن يُسمح بها للاستيثاق باستخدام TrustedUserCAKeys. لمزيد من التفاصيل حول الشهادات، انظر قسم CERTIFICATES في ssh-keygen(1).

UnusedConnectionTimeout
    يُحدد ما إذا كان ينبغي لـ sshd(8) إغلاق اتصالات العملاء التي لا تحتوي على قنوات مفتوحة، وبأي سرعة. تشمل القنوات المفتوحة الصدفة النشطة، أو تنفيذ الأوامر أو جلسات الأنظمة الفرعية، أو الشبكات المتصلة، أو المقابس، أو توجيه الوكيل أو توجيه X11. لا تُعتبر مستمعات التوجيه، مثل تلك الناتجة عن راية -R في ssh(1) ، قنوات مفتوحة ولا تمنع حدوث مهلة الانقطاع. تُحدد قيمة مهلة الانقطاع بالثواني أو يمكن استخدام أي من الوحدات الموثقة في قسم TIME FORMATS.

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

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

UseDNS
    يُحدد ما إذا كان ينبغي لـ sshd(8) البحث عن اسم المضيف البعيد، والتحقق من أن اسم المضيف الذي حُل لعنوان IP البعيد يعود إلى عنوان IP نفسه تمامًا.

    إذا ضُبط هذا الخيار على no (المبدئي)، فيمكن استخدام العناوين فقط وليس أسماء المضيفين في توجيهات from في ~/.ssh/authorized_keys وتوجيهات Host في كتلة Match لـ sshd_config.

UsePAM
    يُمكن واجهة وحدات الاستيثاق القابلة للتوصيل (PAM). إذا ضُبط على yes ، فسيؤدي ذلك إلى تمكين استيثاق PAM باستخدام KbdInteractiveAuthentication و PasswordAuthentication بالإضافة إلى معالجة وحدات حساب وجلسة PAM لجميع أنواع الاستيثاق.

    نظرًا لأن استيثاق PAM التفاعلي عبر لوحة المفاتيح يؤدي عادةً دورًا مكافئًا لاستيثاق كلمة السر، ينبغي لك تعطيل إما PasswordAuthentication أو KbdInteractiveAuthentication.

    إذا مُكّن UsePAM ، فلن تتمكن من تشغيل sshd(8) كمستخدم غير جذر. القيمة المبدئية هي no.

VersionAddendum
    يحدد اختياريًا نصًا إضافيًا لإلحاقه بلافطة بروتوكول SSH التي يرسلها الخادوم عند الاتصال. القيمة المبدئية هي none.

X11DisplayOffset
    يحدد أول رقم عرض متاح لتوجيه X11 الخاص بـ sshd(8)'s. يمنع هذا sshd من التداخل مع خواديم X11 الحقيقية. القيمة المبدئية هي 10.

X11Forwarding
    يحدد ما إذا كان توجيه X11 مسموحًا به. يجب أن يكون المعطى yes أو no. القيمة المبدئية هي no.

    عند تمكين توجيه X11، قد يكون هناك تعرض إضافي للخادوم وشاشات العرض الخاصة بالعميل إذا أُعِدّ عرض وكيل sshd(8) للاستماع على العنوان العام (انظر X11UseLocalhost) ، على الرغم من أن هذا ليس السلوك المبدئي. بالإضافة إلى ذلك، يحدث انتحال الاستيثاق والتحقق من بيانات الاستيثاق واستبدالها على جانب العميل. تكمن المخاطر الأمنية لاستخدام توجيه X11 في أن خادوم عرض X11 الخاص بالعميل قد يكون عرضة للهجوم عندما يطلب عميل SSH التوجيه (انظر التحذيرات الخاصة بـ ForwardX11 في ssh_config(5)). قد يكون لمسؤول النظام موقف يرغب فيه في حماية العملاء الذين قد يعرضون أنفسهم للهجوم عن طريق طلب توجيه X11 دون علم، الأمر الذي قد يبرر الضبط على no.

    لاحظ أن تعطيل توجيه X11 لا يمنع المستخدمين من توجيه حركة مرور X11، حيث يمكن للمستخدمين دائمًا تثبيت أدوات التوجيه الخاصة بهم.

X11UseLocalhost
    يحدد ما إذا كان ينبغي لـ sshd(8) ربط خادوم توجيه X11 بعنون الحلقة المحلية (loopback) أو بالعنوان العام (wildcard). يربط sshd مبدئيًا خادوم التوجيه بعنوان الحلقة المحلية ويضبط جزء اسم المضيف لمتغير البيئة DISPLAY على localhost. يمنع هذا المضيفين البعيدين من الاتصال بعرض الوكيل. ومع ذلك، قد لا تعمل بعض عملاء X11 الأقدم مع هذا التشكيل. يمكن ضبط X11UseLocalhost على no لتحديد وجوب ربط خادوم التوجيه بالعنوان العام. يجب أن يكون المعطى yes أو no. القيمة المبدئية هي yes.

XAuthLocation
    يحدد اسم المسار الكامل لبرنامج xauth(1) ، أو none لعدم استخدام أحدها. القيمة المبدئية هي /usr/bin/xauth.

صيغ الوقت
يمكن التعبير عن معطيات سطر الأوامر وخيارات ملف التشكيل لـ sshd(8) التي تحدد الوقت باستخدام تسلسل على الصيغة التالية: time[qualifier] ، حيث time هو قيمة عددية صحيحة موجبة و qualifier هو أحد التالي:

<none>
    ثوانٍ
s | S
    ثوانٍ
m | M
    دقائق
h | H
    ساعات
d | D
    أيام
w | W
    أسابيع

يُجمع كل عضو في التسلسل معًا لحساب القيمة الإجمالية للوقت.

أمثلة على صيغ الوقت:

600 600 seconds (10 minutes)
10m 10 minutes
1h30m
    1 hour 30 minutes (90 minutes)

رموز (TOKENS)
يمكن أن تستفيد المعطيات الممررة لبعض الكلمات المفتاحية من الرموز (tokens)، والتي تُوسّع في وقت التشغيل. تُوسّع الرموز دون وضع علامات اقتباس أو هروب لمحارف الصدفة. وتقع على عاتق المسؤول مسؤولية التأكد من أنها آمنة في سياق استخدامها.

الرموز المدعومة في sshd_config هي:

%%  حرف ‘%’ مجرد.
%C  يحدد نقاط نهاية الاتصال، ويحتوي على أربع قيم مفصولة بمسافات: عنوان العميل، ورقم منفذ العميل، وعنوان الخادوم، ورقم منفذ الخادوم.
%D  نطاق التوجيه الذي استُقبل فيه الاتصال الوارد.
%F  بصمة مفتاح سلطة الشهادات (CA).
%f  بصمة المفتاح أو الشهادة.
%h  الدليل المنزلي للمستخدم.
%i  معرف المفتاح في الشهادة.
%K  مفتاح سلطة الشهادات (CA) المرمز بقاعدة base64.
%k  المفتاح أو الشهادة المرمزة بقاعدة base64 لغرض الاستيثاق.
%s  الرقم التسلسلي للشهادة.
%T  نوع مفتاح سلطة الشهادات (CA).
%t  نوع المفتاح أو الشهادة.
%U  المعرف الرقمي للمستخدم المستهدف.
%u  اسم المستخدم.

يقبل الأمر AuthorizedKeysCommand الرموز التالية: %%, %C, %D, %f, %h, %k, %t, %U، و %u.

يقبل خيار AuthorizedKeysFile الرموز التالية: %%, %h, %U، و %u.

يقبل الأمر AuthorizedPrincipalsCommand الرموز التالية: %%, %C, %D, %F, %f, %h, %i, %K, %k, %s, %T, %t, %U، و %u.

يقبل الكلمة المفتاحية AuthorizedPrincipalsFile الرموز %%, %h, %U, و %u.

يقبل الكلمة المفتاحية ChrootDirectory الرموز %%, %h, %U, و %u.

الملفات

/etc/ssh/sshd_config
    يحتوي على بيانات الضبط لـ sshd(8). يجب أن يكون هذا الملف قابلاً للكتابة من قِبل الجذر (root) فقط، ولكن يوصى (وإن لم يكن ضرورياً) أن يكون قابلاً للقراءة من الجميع.

انظر أيضًا
sftp-server(8) ، sshd(8)

المؤلفون
-nosplit يعد OpenSSH مشتقاً من إصدار ssh 1.2.12 الأصلي والمجاني الذي طوره Tatu Ylonen. وقد أزال كل من Aaron Campbell ، Bob Beck ، Markus Friedl ، Niels Provos ، Theo de Raadt و Dug Song العديد من العيوب البرمجية، وأعادوا إضافة ميزات أحدث وأنشأوا OpenSSH. ساهم Markus Friedl بدعم إصدارات بروتوكول SSH 1.5 و 2.0. كما ساهم Niels Provos و Markus Friedl بدعم فصل الامتيازات.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3: https://www.gnu.org/licenses/gpl-3.0.html أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.