table of contents
- unstable 4.31.0-1
| SSHD_CONFIG(5) | File Formats Manual | 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/*.confKbdInteractiveAuthenticationnoX11ForwardingyesPrintMotdnoAcceptEnvLANG LC_* COLORTERM NO_COLORSubsystemsftp /usr/lib/openssh/sftp-serverUsePAMyes
تُضمّن ملفات /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).
يمكن
استخدام
الأشكال
التالية:
ListenAddresshostname|address [rdomaindomain]ListenAddresshostname:port [rdomaindomain]ListenAddressIPv4_address:port [rdomaindomain]ListenAddress[hostname|address]:port [rdomaindomain]
يطلب المؤهل الاختياري
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
البعيدة
الاستماع
عليها. يجب
أن تكون
مواصفات
الاستماع
بأحد
الأشكال
التالية:
PermitListenportPermitListenhost:port
يمكن تحديد أذونات متعددة عن طريق الفصل بينها بمسافات بيضاء. يمكن استخدام الوسيط
anyلإزالة جميع القيود والسماح بأي طلبات استماع. ويمكن استخدام الوسيطnoneلحظر جميع طلبات الاستماع. قد يحتوي اسم المضيف على محارف برية كما هو موصوف في قسم PATTERNS في ssh_config(5). يمكن أيضًا استخدام محرف البرية ‘*’ بدلاً من رقم المنفذ للسماح بجميع المنافذ. بشكل مبدئي، يُسمح بجميع طلبات الاستماع لتوجيه المنافذ. لاحظ أن خيارGatewayPortsقد يقيد بشكل أكبر العناوين التي يمكن الاستماع عليها. لاحظ أيضًا أن ssh(1) سيطلب مضيف استماع باسم “localhost” إذا لم يطلب مضيف استماع محدد، ويُعالج هذا الاسم بشكل مختلف عن عناوين localhost الصريحة مثل “127.0.0.1” و “::1”. PermitOpen- يحدد
الوجهات
التي يُسمح
بتوجيه
منافذ TCP
إليها. يجب
أن تكون
مواصفات
التوجيه
بأحد
الأشكال
التالية:
PermitOpenhost:portPermitOpenIPv4_addr:portPermitOpen[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 هو أحد التالي:
يُجمع كل عضو في التسلسل معًا لحساب القيمة الإجمالية للوقت.
أمثلة على صيغ الوقت:
- 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) فقط، ولكن يوصى (وإن لم يكن ضرورياً) أن يكون قابلاً للقراءة من الجميع.
انظر أيضًا¶
المؤلفون¶
يعد 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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org
| $Mdocdate: 28 مارس 2026 $ | Nixpkgs |