| SSHD_CONFIG(5) | File Formats Manual | SSHD_CONFIG(5) |
نام (NAME)
sshd_config - پرونده پیکربندی کارساز OpenSSH
توضیحات (DESCRIPTION)
sshd(8)
دادههای
پیکربندی
را از
/etc/ssh/sshd_config (یا
فایلی که با
گزینهٔ -f
در خط فرمان
مشخص شده
است)
میخواند.
این پرونده
شامل
جفتهای
کلیدواژه-آرگومان،
یک جفت در هر
خط است. مگر
در مواردی
که خلاف آن
ذکر شده
باشد، برای
هر
کلیدواژه
اولین
مقدار
بهدستآمده
استفاده
خواهد شد.
خطوطی که با
‘#’ آغاز
میشوند و
خطوط خالی
به عنوان
توضیح
(کامنت)
تفسیر
میشوند.
آرگومانها
را میتوان
به صورت
اختیاری
درون
نقلقول
دوتایی (")
قرار داد تا
آرگومانهای
حاوی فاصله
مشخص شوند.
کلیدواژههای ممکن و معانی آنها به شرح زیر است (توجه داشته باشید که کلیدواژهها به حروف بزرگ و کوچک حساس نیستند، اما آرگومانها حساس هستند):
AcceptEnv- مشخص
میکند
کدام
متغیرهای
محیطی
ارسالشده
توسط
کلاینت به
environ(7)
نشست
رونوشت
شوند. برای
چگونگی
پیکربندی
کلاینت،
SendEnvوSetEnvرا در ssh_config(5) ببینید. متغیر محیطیTERMهمیشه زمانی که کلاینت درخواست یک شبهترمینال (pseudo-terminal) کند پذیرفته میشود، چرا که توسط پروتکل الزامی است. متغیرها با نام مشخص میشوند، که ممکن است شامل نویسههای عمومی (wildcard) ‘*’ و ‘?’ باشند. چندین متغیر محیطی را میتوان با فاصله از هم جدا کرد یا در چندین دستورالعملAcceptEnvپخش نمود. هشدار داده میشود که برخی از متغیرهای محیطی میتوانند برای دور زدن محیطهای محدودشده کاربر استفاده شوند. به همین دلیل، در استفاده از این دستورالعمل باید احتیاط کرد. پیشفرض این است که هیچ متغیر محیطی پذیرفته نشود. AddressFamily- مشخص
میکند
کدام
خانوادهٔ
آدرس باید
توسط
sshd(8)
استفاده
شود.
آرگومانهای
معتبر
عبارتند از:
any(پیشفرض)،inet(تنها استفاده از IPv4)، یاinet6(تنها استفاده از IPv6). AllowAgentForwarding- مشخص
میکند که
آیا
فورواردینگ
(هدایت)
ssh-agent(1)
مجاز است یا
خیر.
پیشفرض
yesاست. توجه داشته باشید که غیرفعال کردن فورواردینگ کارگزار امنیت را بهبود نمیبخشد مگر اینکه کاربران از دسترسی به پوسته (shell) نیز محروم شوند، چرا که آنها همیشه میتوانند فورواردرهای اختصاصی خود را نصب کنند. AllowGroups- این
کلیدواژه
میتواند
با فهرستی
از الگوهای
نام گروه
دنبال شود
که با فاصله
از هم جدا
شدهاند. در
صورت مشخص
شدن، ورود
تنها برای
کاربرانی
مجاز است که
گروه اصلی
یا فهرست
گروههای
تکمیلی
آنها با
یکی از این
الگوها
مطابقت
داشته باشد.
تنها
نامهای
گروه معتبر
هستند؛
شناسه عددی
گروه
شناسایی
نمیشود. به
صورت
پیشفرض،
ورود برای
تمام
گروهها
مجاز است.
برای
گروههایی
که با
DenyGroupsمطابقت داشته باشند،AllowGroupsبررسی نمیشود.برای اطلاعات بیشتر در مورد الگوها، بخش PATTERNS را در ssh_config(5) ببینید. این کلیدواژه میتواند چندین بار در
sshd_configظاهر شود و هر مورد به انتهای فهرست افزوده میشود. AllowStreamLocalForwarding- مشخص
میکند که
آیا
فورواردینگ
StreamLocal (سوکت
دامنه
یونیکس - Unix-domain socket)
مجاز است یا
خیر.
گزینههای
در دسترس
عبارتند از:
yes(پیشفرض) یاallبرای مجاز دانستن فورواردینگ StreamLocal،noبرای جلوگیری از تمام فورواردینگهای StreamLocal،localتنها برای مجاز دانستن فورواردینگ محلی (از دیدگاه ssh(1)) یاremoteتنها برای مجاز دانستن فورواردینگ راه دور. توجه داشته باشید که غیرفعال کردن فورواردینگ StreamLocal امنیت را افزایش نمیدهد مگر اینکه کاربران از دسترسی به پوسته نیز محروم شوند، چرا که همیشه میتوانند فورواردرهای خود را نصب نمایند. AllowTcpForwarding- مشخص
میکند که
آیا
فورواردینگ
TCP مجاز است
یا خیر.
گزینههای
موجود
عبارتند از:
yes(پیشفرض) یاallبرای مجاز دانستن فورواردینگ TCP،noبرای جلوگیری از تمام فورواردینگهای TCP،localتنها برای مجاز دانستن فورواردینگ محلی (از دیدگاه ssh(1)) یاremoteتنها برای مجاز دانستن فورواردینگ از راه دور. توجه داشته باشید که غیرفعال کردن فورواردینگ TCP امنیت را بهبود نمیبخشد مگر اینکه کاربران از دسترسی به پوسته نیز محروم شوند، چرا که همیشه میتوانند فورواردرهای اختصاصی خود را نصب کنند. AllowUsers- این
کلیدواژه
میتواند
با فهرستی
از الگوهای
نام کاربری
دنبال شود
که با فاصله
از هم جدا
شدهاند. در
صورت مشخص
شدن، ورود
تنها برای
نامهای
کاربری
مجاز است که
با یکی از
الگوها
مطابقت
داشته
باشند. تنها
نامهای
کاربری
معتبر
هستند؛
شناسه عددی
کاربر
شناسایی
نمیشود. به
صورت
پیشفرض،
ورود برای
تمام
کاربران
مجاز است.
اگر الگو به
شکل USER@HOST
باشد،
آنگاه USER و HOST
به صورت
جداگانه
بررسی
میشوند،
که ورود را
به کاربران
خاص از
میزبانهای
خاص محدود
میکند.
معیار HOST
میتواند
علاوهبر
این شامل
آدرسهایی
برای تطبیق
در قالب
آدرس/طول
ماسک CIDR باشد.
برای
کاربرانی
که با
DenyUsersتطبیق داده شوند،AllowUsersبررسی نمیشود.برای اطلاعات بیشتر در مورد الگوها، بخش PATTERNS را در ssh_config(5) ببینید. این کلیدواژه میتواند چندین بار در
sshd_configظاهر شود و هر مورد به انتهای فهرست افزوده میشود. AuthenticationMethods- روشهای
احراز
هویتی را
مشخص
میکند که
برای اعطای
دسترسی به
کاربر باید
با موفقیت
تکمیل شوند.
این گزینه
باید با یک
یا چند
فهرست از
نامهای
روشهای
احراز هویت
جداشده با
کاما دنبال
شود، یا با
رشتهٔ تکی
anyبرای نشان دادن رفتار پیشفرضِ پذیرش هر روش احراز هویت منفرد. اگر حالت پیشفرض لغو شود، احراز هویت موفق نیازمند تکمیل تمام روشها در حداقل یکی از این فهرستها است.برای مثال، "publickey,password publickey,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 را میپذیرند. اگر هیچ آرگومانی مشخص نشود، نام کاربری کاربر هدف استفاده میشود.این برنامه باید در خروجی استاندارد صفر یا چند خط از خروجی authorized_keys تولید کند (بخش
AUTHORIZED_KEYSدر sshd(8) را ببینید). دستورAuthorizedKeysCommandپس از فایلهای معمولAuthorizedKeysFileآزمایش میشود و در صورتی که کلید منطبقی در آنجا پیدا شود اجرا نخواهد شد. به صورت پیشفرض، هیچAuthorizedKeysCommandاجرا نمیشود. این دستور تنها برای کاربران معتبر اجرا میگردد. AuthorizedKeysCommandUser- کاربری را
مشخص
میکند که
AuthorizedKeysCommandتحت حساب کاربری او اجرا میشود. توصیه میشود از کاربری اختصاصی استفاده شود که در میزبان هیچ نقش دیگری جز اجرای دستورات کلیدهای مجاز نداشته باشد. اگرAuthorizedKeysCommandمشخص شود اماAuthorizedKeysCommandUserمشخص نشود، آنگاه sshd(8) از شروع به کار خودداری خواهد کرد. AuthorizedKeysFile- فایلی را
مشخص
میکند که
شامل
کلیدهای
عمومی مورد
استفاده
برای احراز
هویت کاربر
است. قالب
آن در بخش AUTHORIZED_KEYS
FILE FORMAT از
sshd(8) شرح
داده شده
است.
آرگومانهای
AuthorizedKeysFileممکن است شامل نویسههای عمومی باشند و نشانههای شرحدادهشده در بخش TOKENS را بپذیرند. پس از بسط،AuthorizedKeysFileبه عنوان یک مسیر مطلق یا مسیری نسبی به دایرکتوری خانگی کاربر در نظر گرفته میشود. میتوان چندین فایل را که با فاصله از هم جدا شدهاند فهرست کرد. به عنوان جایگزین، این گزینه را میتوان رویnoneتنظیم کرد تا از بررسی کلیدهای کاربر در فایلها صرفنظر شود. پیشفرض ".ssh/authorized_keys .ssh/authorized_keys2" است. این فایلها تنها برای کاربران معتبر بررسی میشوند. AuthorizedPrincipalsCommand- برنامهای
را مشخص
میکند که
برای تولید
فهرست
شناسهٔ
هویتهای
(principals) گواهی
مجاز طبق
AuthorizedPrincipalsFileاستفاده شود. مالک برنامه باید root باشد، برای گروه یا دیگران قابل نوشتن نباشد و با یک مسیر مطلق مشخص گردد. آرگومانهایAuthorizedPrincipalsCommandنشانههای شرحدادهشده در بخش TOKENS را میپذیرند. اگر هیچ آرگومانی مشخص نشود، نام کاربری کاربر مقصد استفاده میشود.این برنامه باید در خروجی استاندارد صفر یا چند خط از خروجی
AuthorizedPrincipalsFileتولید کند. اگر هر یک ازAuthorizedPrincipalsCommandیاAuthorizedPrincipalsFileمشخص شده باشد، آنگاه گواهیهای ارائهشده توسط کلاینت برای احراز هویت باید شامل یک شناسهٔ هویت (principal) فهرستشده باشند. به صورت پیشفرض، هیچ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باشد، هیچ بنری نمایش داده نمیشود. به صورت پیشفرض، هیچ بنری نمایش داده نمیشود. 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, ssh-mldsa44-ed25519@openssh.com
اگر فهرست مشخصشده با نویسهٔ ‘+’ آغاز شود، الگوریتمهای مشخصشده به جای جایگزینی، به مجموعهٔ پیشفرض افزوده میشوند. اگر فهرست با نویسهٔ ‘-’ آغاز شود، الگوریتمهای مشخصشده (شامل نویسههای عمومی) به جای جایگزینی، از مجموعهٔ پیشفرض حذف خواهند شد.
گواهیهای امضاشده با سایر الگوریتمها برای احراز هویت کلید عمومی یا مبتنی بر میزبان پذیرفته نخواهند شد.
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 یا
سوکت
یونیکس (به
ترتیب) که
از
فورواردینگ
محلی
ssh(1)
برقرار
شدهاند،
یعنی
LocalForwardیاDynamicForward. forwarded-tcpip,forwarded-streamlocal@openssh.com- اتصالات
باز TCP یا
سوکت
یونیکس (به
ترتیب) که
به یک
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باید شامل فایلها و دایرکتوریهای لازم برای پشتیبانی از نشست کاربر باشد. برای یک نشست تعاملی، این نیازمند دستکم یک پوسته (معمولاً sh(1)) و گرههای پایهٔ /dev مانند دستگاههای null(4) ، zero(4) ، stdin(4) ، stdout(4) ، stderr(4) و tty(4) است. برای نشستهای انتقال فایل با استفاده از SFTP در صورتی که از sftp-server درونفرآیندی استفاده شود، هیچ پیکربندی اضافی محیطی لازم نیست، هرچند نشستهایی که از ثبت لاگ استفاده میکنند ممکن است در برخی سیستمعاملها به /dev/log درون دایرکتوری chroot نیاز داشته باشند (برای جزئیات sftp-server(8) را ببینید).برای ایمنی، بسیار مهم است که سلسلهمراتب دایرکتوری از تغییر توسط فرآیندهای دیگر روی سیستم (به ویژه فرآیندهای بیرون از زندان یا jail) محافظت شود. پیکربندی نادرست میتواند به محیطهای ناامنی منجر شود که sshd(8) قادر به تشخیص آنها نیست.
پیشفرض
noneاست که نشاندهنده عدم انجام chroot(2) میباشد. 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دارد. پیامهای زنده بودن کلاینت از طریق کانال رمزنگاریشده ارسال میشوند و بنابراین قابل جعل نخواهند بود. گزینهٔ TCP keepalive که توسطTCPKeepAliveفعال میشود، قابل جعل است. سازوکار زنده بودن کلاینت زمانی ارزشمند است که کلاینت یا کارساز نیاز داشته باشند از عدم پاسخگویی اتصال مطلع شوند.مقدار پیشفرض ۳ است. اگر
ClientAliveIntervalروی ۱۵ تنظیم شده باشد وClientAliveCountMaxدر مقدار پیشفرض باقی بماند، کلاینتهای SSH که پاسخ نمیدهند پس از تقریباً ۴۵ ثانیه قطع خواهند شد. تنظیم مقدار صفر برایClientAliveCountMaxقطع اتصال را غیرفعال میکند. ClientAliveInterval- فاصله زمانی مهلت (timeout) را بر حسب ثانیه تعیین میکند که پس از آن، اگر هیچ دادهای از کلاینت دریافت نشده باشد، sshd(8) پیامی از طریق کانال رمزگذاریشده ارسال میکند تا پاسخی از کلاینت درخواست کند. مقدار پیشفرض ۰ است، که نشان میدهد این پیامها برای کلاینت ارسال نخواهند شد.
Compression- مشخص
میکند که
آیا
فشردهسازی
پس از احراز
هویت موفق
کاربر فعال
باشد یا
خیر.
آرگومان
باید
yes ،delayed(یک معادل قدیمی برایyes) یاnoباشد. پیشفرضyesاست.فشردهسازی بر تمام ترافیکی که از طریق اتصال SSH جریان دارد اعمال میشود. اگر ترافیک غیرقابل اعتماد (مانند یک پورت فوروارد باز) در کنار ترافیک قابل اعتماد روی اتصال مجاز باشد، فشردهسازی ممکن است اطلاعاتی درباره محتویات نشست افشا کند. به همین دلیل، فعال کردن فشردهسازی برای اتصالاتی که ترافیک قابل اعتماد و غیرقابل اعتماد را به اشتراک میگذارند توصیه نمیشود.
DenyGroups- این
کلیدواژه
میتواند
با فهرستی
از الگوهای
نام گروه
دنبال شود
که با فاصله
از هم جدا
شدهاند.
ورود برای
کاربرانی
که گروه
اصلی یا
فهرست
گروههای
تکمیلی
آنها با
یکی از این
الگوها
مطابقت
داشته باشد
ممنوع است.
تنها
نامهای
گروه معتبر
هستند؛
شناسه عددی
گروه
شناسایی
نمیشود. به
صورت
پیشفرض،
ورود برای
تمام
گروهها
مجاز است.
برای
گروههایی
که با
DenyGroupsمطابقت داشته باشند،AllowGroupsبررسی نمیشود.برای اطلاعات بیشتر در مورد الگوها، بخش PATTERNS را در ssh_config(5) ببینید. این کلیدواژه میتواند چندین بار در
sshd_configظاهر شود و هر مورد به انتهای فهرست افزوده میشود. DenyUsers- این
کلیدواژه
میتواند
با فهرستی
از الگوهای
نام کاربری
دنبال شود
که با فاصله
از هم جدا
شدهاند.
ورود برای
نامهای
کاربری که
با یکی از
الگوها
مطابقت
داشته
باشند
ممنوع است.
تنها
نامهای
کاربری
معتبر
هستند؛
شناسه عددی
کاربر
شناسایی
نمیشود. به
صورت
پیشفرض،
ورود برای
تمام
کاربران
مجاز است.
اگر الگو به
شکل USER@HOST
باشد،
آنگاه USER و HOST
به صورت
جداگانه
بررسی
میشوند،
که ورود را
برای
کاربران
خاص از
میزبانهای
خاص محدود
میکند.
معیار HOST
میتواند
علاوهبر
این شامل
آدرسهایی
برای تطبیق
در قالب
آدرس/طول
ماسک CIDR باشد.
برای
کاربرانی
که با
DenyUsersتطبیق داده شوند،AllowUsersبررسی نمیشود.برای اطلاعات بیشتر در مورد الگوها، بخش PATTERNS را در ssh_config(5) ببینید. این کلیدواژه میتواند چندین بار در
sshd_configظاهر شود و هر مورد به انتهای فهرست افزوده میشود. DisableForwarding- تمام قابلیتهای فورواردینگ از جمله X11، ssh-agent(1) ، TCP و StreamLocal را غیرفعال میکند. این گزینه تمام گزینههای دیگر مرتبط با فورواردینگ را لغو کرده و میتواند پیکربندیهای محدودشده را سادهتر کند.
ExposeAuthInfo- یک فایل
موقت حاوی
فهرستی از
روشهای
احراز هویت
و
اعتبارنامههای
عمومی
(مانند
کلیدها) که
برای احراز
هویت کاربر
استفاده
شدهاند
مینویسد.
مکان فایل
از طریق
متغیر
محیطی
SSH_USER_AUTHدر اختیار نشست کاربر قرار میگیرد. پیشفرضnoاست. FingerprintHash- الگوریتم
درهمسازی
(هش) مورد
استفاده
هنگام ثبت
اثرانگشت
کلید در لاگ
را مشخص
میکند.
گزینههای
معتبر
عبارتند از:
md5وsha256. پیشفرضsha256است. ForceCommand- اجرای
دستور
مشخصشده
توسط
ForceCommandرا اجباری میکند و هر دستوری را که توسط کلاینت ارائه شده باشد و همچنین ~/.ssh/rc را (در صورت وجود) نادیده میگیرد. این دستور با استفاده از پوستهٔ ورود کاربر با گزینهٔ -c فراخوانی میشود. این مورد برای اجرای پوسته، دستور یا زیرسیستم اعمال میگردد. بیشترین کاربرد آن در داخل یک بلوکMatchاست. دستوری که در ابتدا توسط کلاینت ارائه شده بود در متغیر محیطیSSH_ORIGINAL_COMMANDدر دسترس است. مشخص کردن دستورinternal-sftpاستفاده از یک سرور SFTP درونفرآیندی را اجباری میکند که هنگام استفاده باChrootDirectoryبه هیچ فایل پشتیبانی نیاز ندارد. پیشفرضnoneاست.این دستورالعمل انواع دیگر دسترسی را که کلاینت ممکن است از طریق اتصال خود درخواست کند، مانند فورواردینگ TCP، کارگزار، سوکت یا X11 محدود نمیکند. اگر این موارد مطلوب نیستند، باید صراحتاً غیرفعال شوند؛ یا به صورت جداگانه از طریق گزینههای مربوط به خود یا همگی با هم با استفاده از گزینهٔ
DisableForwarding. GatewayPorts- مشخص
میکند که
آیا
میزبانهای
راه دور
اجازه
دارند به
پورتهای
فورواردشده
برای
کلاینت
متصل شوند
یا خیر. به
صورت
پیشفرض،
sshd(8)
فورواردینگهای
پورت راه
دور را به
آدرس loopback
پیوند
میدهد. این
کار مانع از
اتصال سایر
میزبانهای
راه دور به
پورتهای
فورواردشده
میشود.
GatewayPortsمیتواند برای مشخص کردن این استفاده شود که sshd باید به فورواردینگهای پورت راه دور اجازه دهد به آدرسهای غیر loopback متصل شوند، بنابراین به سایر میزبانها اجازه اتصال میدهد. آرگومان ممکن استnoباشد تا فورواردینگهای پورت راه دور تنها برای میزبان محلی در دسترس باشند،yesتا فورواردینگهای پورت راه دور به آدرس عمومی (wildcard) متصل شوند، یاclientspecifiedتا به کلاینت اجازه دهد آدرسی را که فورواردینگ به آن متصل میشود انتخاب کند. پیشفرضnoاست. GSSAPIAuthentication- مشخص
میکند که
آیا احراز
هویت کاربر
بر اساس GSSAPI
مجاز است یا
خیر.
پیشفرض
noاست. GSSAPICleanupCredentials- مشخص
میکند که
آیا حافظه
پنهان
اعتبارنامههای
کاربر در
هنگام خروج
به طور
خودکار
نابود شود
یا خیر.
پیشفرض
yesاست. GSSAPIDelegateCredentials- پذیرش
اعتبارنامههای
تفویضشده
در سمت
کارساز.
پیشفرض
yesاست. GSSAPIStrictAcceptorCheck- تعیین
میکند که
آیا در مورد
هویت
گیرندهٔ GSSAPI
که کلاینت
در برابر آن
احراز هویت
میکند
سختگیری
شود یا خیر.
اگر روی
yesتنظیم شود، کلاینت باید در برابر سرویس میزبان روی نام میزبان فعلی احراز هویت کند. اگر رویnoتنظیم شود، کلاینت میتواند در برابر هر کلید سرویس ذخیرهشده در مخزن پیشفرض دستگاه احراز هویت کند. این قابلیت برای کمک به عملکرد روی ماشینهای چندمقصدی (multi-homed) فراهم شده است. پیشفرضyesاست. این گزینه ممکن است در محیطهای Active Directory ویندوز مؤثر نباشد. HostbasedAcceptedAlgorithms- الگوریتمهای
امضایی را
که برای
احراز هویت
مبتنی بر
میزبان
پذیرفته
میشوند،
به عنوان
فهرستی از
الگوهای
جداشده با
کاما مشخص
میکند.
همچنین اگر
فهرست
مشخصشده
با نویسهٔ
‘+’ آغاز
شود،
الگوریتمهای
امضای
مشخصشده
به جای
جایگزینی،
به مجموعه
پیشفرض
افزوده
میشوند.
اگر فهرست
با نویسهٔ
‘-’ آغاز
شود،
الگوریتمهای
امضای
مشخصشده
(شامل
نویسههای
عمومی) به
جای
جایگزینی،
از مجموعه
پیشفرض
حذف خواهند
شد. اگر
فهرست با
نویسهٔ ‘^’
آغاز شود،
الگوریتمهای
امضای
مشخصشده
در ابتدای
مجموعه
پیشفرض
قرار
میگیرند.
پیشفرض
برای این
گزینه
عبارت است
از:
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-mldsa44-ed25519-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-mldsa44-ed25519@openssh.com
فهرست الگوریتمهای امضای موجود را میتوان با استفاده از "ssh -Q HostbasedAcceptedAlgorithms" نیز به دست آورد. این گزینه قبلاً با نام HostbasedAcceptedKeyTypes شناخته میشد.
HostbasedAuthentication- مشخص
میکند که
آیا احراز
هویت rhosts یا /etc/hosts.equiv
همراه با
احراز هویت
موفق کلید
عمومی
میزبان
کلاینت
مجاز است یا
خیر (احراز
هویت مبتنی
بر میزبان).
پیشفرض
noاست. HostbasedUsesNameFromPacketOnly- مشخص
میکند که
آیا سرور در
زمان تطبیق
نام در
فایلهای
~/.shosts ،
~/.rhosts و
/etc/hosts.equiv در
طول
HostbasedAuthenticationتلاش برای جستجوی معکوس نام (reverse name lookup) انجام دهد یا خیر. تنظیم رویyesبه این معنی است که sshd(8) از نام ارائهشده توسط کلاینت استفاده میکند به جای اینکه سعی کند نام را از خود اتصال TCP تحلیل نماید. پیشفرضnoاست. HostCertificate- فایلی حاوی
گواهی
عمومی
میزبان را
مشخص
میکند.
کلید عمومی
گواهی باید
با یک کلید
خصوصی
میزبان که
پیشتر
توسط
HostKeyمشخص شده است مطابقت داشته باشد. رفتار پیشفرض sshd(8) بارگذاری نکردن هیچ گواهی است. HostKey- فایلی حاوی
یک کلید
خصوصی
میزبان را
که توسط SSH
استفاده
میشود
مشخص
میکند.
پیشفرضها
عبارتند از:
/etc/ssh/ssh_host_ecdsa_key ،
/etc/ssh/ssh_host_ed25519_key ،
/etc/ssh/ssh_host_mldsa44_ed25519_key و
/etc/ssh/ssh_host_rsa_key.
توجه داشته باشید که sshd(8) اگر فایلی برای گروه/سایرین قابل دسترسی باشد از استفاده از آن خودداری خواهد کرد و اینکه گزینهٔ
HostKeyAlgorithmsمحدود میکند کدامیک از کلیدها در واقع توسط sshd(8) استفاده شوند.امکان داشتن چندین فایل کلید میزبان وجود دارد. همچنین میتوان فایلهای کلید عمومی میزبان را به جای آن مشخص کرد. در این حالت، عملیات روی کلید خصوصی به یک ssh-agent(1) واگذار خواهد شد.
HostKeyAgent- سوکت دامنه
یونیکس
مورد
استفاده
برای
ارتباط با
کارگزاری
را که به
کلیدهای
خصوصی
میزبان
دسترسی
دارد مشخص
میکند. اگر
رشتهٔ "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-mldsa44-ed25519-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-mldsa44-ed25519@openssh.com
فهرست الگوریتمهای امضای موجود را میتوان با استفاده از "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- مشخص
میکند که
آیا احراز
هویت
تعاملی با
صفحهکلید
مجاز است یا
خیر. تمام
سبکهای
احراز هویت
از
login.conf(5)
پشتیبانی
میشوند.
پیشفرض
yesاست. آرگومان این کلیدواژه بایدyesیاnoباشد.ChallengeResponseAuthenticationیک نام مستعار منسوخشده برای این مورد است. KerberosAuthentication- مشخص
میکند که
آیا
گذرواژهٔ
ارائهشده
توسط کاربر
برای
PasswordAuthenticationاز طریق Kerberos KDC اعتبارسنجی خواهد شد یا خیر. برای استفاده از این گزینه، سرور به یک servtab کربروس نیاز دارد که امکان تأیید هویت KDC را فراهم کند. پیشفرضnoاست. KerberosGetAFSToken- اگر AFS فعال
است و کاربر
یک Kerberos 5 TGT دارد،
پیش از
دسترسی به
دایرکتوری
خانگی
کاربر تلاش
میکند یک
توکن AFS به
دست آورد.
پیشفرض
noاست. KerberosOrLocalPasswd- اگر احراز
هویت
گذرواژه از
طریق
کربروس
ناموفق
باشد،
گذرواژه از
طریق هر
سازوکار
محلی اضافی
مانند
/etc/passwd
اعتبارسنجی
خواهد شد.
پیشفرض
yesاست. KerberosTicketCleanup- مشخص
میکند که
آیا فایل
حافظه
پنهان بلیت
کاربر
هنگام خروج
به طور
خودکار
نابود شود
یا خیر.
پیشفرض
yesاست. KexAlgorithms- الگوریتمهای
مجاز KEX
(تبادل کلید
- Key Exchange) را که
کارساز به
کلاینتها
پیشنهاد
میدهد
مشخص
میکند.
ترتیب این
فهرست
اهمیتی
ندارد، چرا
که کلاینت
ترتیب
اولویت را
مشخص
مینماید.
چندین
الگوریتم
باید با
کاما از هم
جدا شوند.
اگر فهرست مشخصشده با نویسهٔ ‘+’ آغاز شود، الگوریتمهای مشخصشده به جای جایگزینی، به مجموعه پیشفرض افزوده میشوند. اگر فهرست با نویسهٔ ‘-’ آغاز شود، الگوریتمهای مشخصشده (شامل نویسههای عمومی) به جای جایگزینی، از مجموعه پیشفرض حذف خواهند شد. اگر فهرست با نویسهٔ ‘^’ آغاز شود، الگوریتمهای مشخصشده در ابتدای مجموعه پیشفرض قرار میگیرند.
الگوریتمهای پشتیبانیشده عبارتند از:
- 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
- mlkem768nistp256-sha256
- 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- آدرسهای
محلی را
مشخص
میکند که
sshd(8)
باید روی
آنها شنود
کند.
قالبهای
زیر
میتوانند
استفاده
شوند:
ListenAddresshostname|address [rdomaindomain]ListenAddresshostname:port [rdomaindomain]ListenAddressIPv4_address:port [rdomaindomain]ListenAddress[hostname|address]:port [rdomaindomain]
مشخصه اختیاری
rdomainدرخواست میکند که sshd(8) در یک دامنهٔ مسیریابی صریح شنود کند. اگر port مشخص نشود، sshd روی آدرس و تمام گزینههایPortمشخصشده شنود خواهد کرد. پیشفرض شنود روی تمام آدرسهای محلی در دامنه مسیریابی پیشفرض فعلی است. چندین گزینهٔListenAddressمجاز است. برای اطلاعات بیشتر در مورد دامنههای مسیریابی، rdomain(4) را ببینید. LoginGraceTime- اگر کاربر با موفقیت وارد نشده باشد، سرور پس از این مدت اتصال را قطع میکند. اگر مقدار 0 باشد، هیچ محدودیت زمانی وجود ندارد. پیشفرض 120 ثانیه است.
LogLevel- سطح جزئیات لاگ را که هنگام ثبت پیامها از sshd(8) استفاده میشود مشخص میکند. مقادیر ممکن عبارتند از: QUIET، FATAL، ERROR، INFO، VERBOSE، DEBUG، DEBUG1، DEBUG2 و DEBUG3. پیشفرض INFO است. DEBUG و DEBUG1 معادل یکدیگر هستند. DEBUG2 و DEBUG3 هر یک سطوح بالاتری از خروجی اشکالزدایی را مشخص میکنند. ثبت لاگ با سطح DEBUG حریم خصوصی کاربران را نقض میکند و توصیه نمیشود.
LogVerbose- یک یا چند
مورد لغو (override)
را برای
LogLevelمشخص میکند. یک مورد لغو شامل یک یا چند فهرست الگو است که با فایل مبدأ، تابع و شماره خط تطبیق مییابد تا لاگبرداری دقیق را برای آنها اجباری کند. برای مثال، یک الگوی لغو مانند:kex.c:*:1000,*:kex_exchange_identification():*,packet.c:*
لاگبرداری دقیق را برای خط 1000 از kex.c ، تمام موارد در تابع
kex_exchange_identification() و تمام کدهای موجود در فایل packet.c فعال میکند. این گزینه برای اشکالزدایی در نظر گرفته شده است و هیچ موردی به طور پیشفرض فعال نیست. MACs- الگوریتمهای
MAC (کد
اصالتسنجی
پیام - message authentication code)
در دسترس را
مشخص
میکند.
الگوریتم MAC
برای حفاظت
از
یکپارچگی
دادهها
استفاده
میشود.
چندین
الگوریتم
باید با
کاما از هم
جدا شوند.
اگر فهرست
مشخصشده
با نویسهٔ
‘+’ آغاز
شود،
الگوریتمهای
مشخصشده
به جای
جایگزینی،
به مجموعه
پیشفرض
افزوده
میشوند.
اگر فهرست
با نویسهٔ
‘-’ آغاز
شود،
الگوریتمهای
مشخصشده
(شامل
نویسههای
عمومی) به
جای
جایگزینی،
از مجموعه
پیشفرض
حذف خواهند
شد. اگر
فهرست با
نویسهٔ ‘^’
آغاز شود،
الگوریتمهای
مشخصشده
در ابتدای
مجموعه
پیشفرض
قرار
میگیرند.
الگوریتمهایی که شامل "-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- یک بلوک
شرطی را
معرفی
میکند. اگر
تمام
معیارهای
روی خط
Matchبرآورده شوند، کلیدواژههای خطوط بعدی مقادیر تعیینشده در بخش سراسری فایل پیکربندی را لغو میکنند، تا زمانی که خطMatchدیگری یا انتهای فایل فرا برسد. اگر یک کلیدواژه در چندین بلوکMatchکه شرایط آنها برآورده شده است ظاهر شود، تنها اولین نمونه از کلیدواژه اعمال خواهد شد.آرگومانهای
Matchیک یا چند جفت معیار-الگو هستند یا یکی از معیارهای نشانهٔ تکی:Allکه با تمام معیارها مطابقت دارد، یاInvalid-Userکه زمانی تطبیق مییابد که نام کاربری ارائهشده با هیچ حساب شناختهشدهای مطابقت نداشته باشد. معیارهای در دسترس عبارتند از:User ،Group ،Host ،LocalAddress ،LocalPort ،Version ،RDomainوAddress(باRDomainکه نشاندهنده rdomain(4) است که اتصال روی آن دریافت شده است).الگوهای تطبیق ممکن است شامل ورودیهای تکی یا فهرستهای جداشده با کاما باشند و میتوانند از عملگرهای عمومی و نفی شرحدادهشده در بخش 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 ،RDomain ،SetEnv ،StreamLocalBindMask ،StreamLocalBindUnlink ،TrustedUserCAKeys ،UnusedConnectionTimeout ،X11DisplayOffset ،X11ForwardingوX11UseLocalhost. MaxAuthTries- حداکثر تعداد تلاشهای مجاز برای احراز هویت در هر اتصال را مشخص میکند. هنگامی که تعداد تلاشهای ناموفق به نیمی از این مقدار برسد، تلاشهای ناموفق اضافی در لاگ ثبت میشوند. پیشفرض ۶ است.
MaxSessions- حداکثر
تعداد
نشستهای
باز پوسته،
ورود یا
زیرسیستم
(مانند sftp)
مجاز در هر
اتصال شبکه
را مشخص
میکند.
نشستهای
چندگانه
ممکن است
توسط
کلاینتهایی
که از
مالتیپلکسینگ
اتصال
پشتیبانی
میکنند
برقرار
شوند. تنظیم
MaxSessionsروی 1 در عمل مالتیپلکسینگ نشست را غیرفعال میکند، در حالی که تنظیم آن روی 0 از تمام نشستهای پوسته، ورود و زیرسیستم جلوگیری میکند در حالی که همچنان فورواردینگ را مجاز میداند. پیشفرض 10 است. MaxStartups- حداکثر
تعداد
اتصالات
احراز
هویتنشدهٔ
همزمان به
دیمون SSH را
مشخص
میکند.
اتصالات
اضافی قطع
خواهند شد
تا زمانی که
احراز هویت
موفق شود یا
LoginGraceTimeبرای یک اتصال منقضی گردد.به عنوان روشی جایگزین، میتوان قطع زودهنگام تصادفی را با مشخص کردن سه مقدار جداشده با دونقطه start:rate:full (مانند "10:30:60") فعال کرد. پیشفرض 10:30:100 است. اگر در حال حاضر start (۱۰) اتصال احراز هویتنشده وجود داشته باشد، sshd(8) تلاشهای اتصال را با احتمال rate/100 (۳۰٪) رد میکند. این احتمال به صورت خطی افزایش مییابد و در صورتی که تعداد اتصالات احراز هویتنشده به full (۶۰) برسد، تمام تلاشهای اتصال رد خواهند شد.
ModuliFile- فایل moduli(5) را مشخص میکند که شامل گروههای دیفی-هلمنِ مورد استفاده برای روشهای تبادل کلید “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” را درخواست خواهد کرد، و با این نام متفاوت از آدرسهای صریح محلیِ “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تنظیم شود، ورود root با احراز هویت کلید عمومی مجاز خواهد بود، اما تنها در صورتی که گزینهٔ command مشخص شده باشد (که ممکن است برای گرفتن پشتیبانهای راه دور مفید باشد حتی اگر ورود root به طور معمول مجاز نباشد). تمام روشهای احراز هویت دیگر برای root غیرفعال هستند.اگر این گزینه روی
noتنظیم شود، کاربر root مجاز به ورود نیست. PermitTTY- مشخص
میکند که
آیا تخصیص
pty(4)
مجاز است یا
خیر.
پیشفرض
yesاست. PermitTunnel- مشخص
میکند که
آیا
فورواردینگ
دستگاه
tun(4)
مجاز است یا
خیر.
آرگومان
باید
yes ،point-to-point(لایه ۳)،ethernet(لایه ۲) یا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 باشد. توجه داشته باشید که طول ماسک ارائهشده باید با آدرس سازگار باشد – مشخص کردن طول ماسکی که برای آدرس بیش از حد طولانی است یا دارای بیتهای تنظیمشده در این بخش میزبان آدرس است خطا محسوب میشود. به عنوان مثال، به ترتیب 192.0.2.0/33 و 192.0.2.0/8. پیشفرض معاف نکردن هیچ آدرسی است.
PidFile- فایلی را
مشخص
میکند که
شامل شناسه
فرایند (PID)
دیمون 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-mldsa44-ed25519-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-mldsa44-ed25519@openssh.com
فهرست الگوریتمهای امضای موجود را میتوان با استفاده از "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)
باید اتصال
را بدون قید
و شرط قطع
کند. علاوه
بر این، در
صورتی که
PerSourcePenaltiesفعال باشد، ممکن است جریمهٔrefuseconnectionعلیه مبدأ اتصال ثبت شود. این گزینه در عمل تنها در یک بلوکMatchمفید است. RekeyLimit- حداکثر حجم
دادهای را
که ممکن است
پیش از
مذاکرهٔ
مجدد کلید
نشست ارسال
یا دریافت
شود، و به
صورت
اختیاری
حداکثر
زمانی را که
ممکن است
پیش از
مذاکرهٔ
مجدد کلید
نشست سپری
شود مشخص
میکند.
آرگومان
اول بر حسب
بایت مشخص
میشود و
میتواند
پسوند ‘K ،’
‘M’ یا ‘G’
داشته باشد
تا به ترتیب
کیلوبایت،
مگابایت یا
گیگابایت
را نشان
دهد.
پیشفرض
بسته به نوع
رمزنگاری
بین ‘1G’ و ‘4G’
است. مقدار
اختیاری
دوم بر حسب
ثانیه مشخص
میشود و
میتواند
از هر یک از
واحدهای
مستندشده
در بخش
TIME FORMATS
استفاده
کند. مقدار
پیشفرض
برای
RekeyLimitبرابر باdefault noneاست، که به این معنی است که کلیدزنی مجدد پس از ارسال یا دریافت مقدار دادهٔ پیشفرضِ رمز مربوطه انجام میشود و هیچ کلیدزنی مجدد مبتنی بر زمان انجام نمیگیرد. RequiredRSASize- حداقل
اندازه
کلید RSA (بر
حسب بیت) را
که sshd(8)
میپذیرد
مشخص
میکند.
کلیدهای
احراز هویت
کاربر و
مبتنی بر
میزبان که
کوچکتری از
این حد
باشند رد
خواهند شد.
پیشفرض
1024بیت است. توجه داشته باشید که این حد را تنها میتوان نسبت به مقدار پیشفرض افزایش داد. RevokedKeys- فایل
کلیدهای
عمومی
ابطالشده
را مشخص
میکند، یا
noneبرای استفاده نکردن از آن. کلیدهای فهرستشده در این فایل برای احراز هویت کلید عمومی رد خواهند شد. توجه داشته باشید که اگر این فایل قابل خواندن نباشد، احراز هویت با کلید عمومی برای تمام کاربران رد خواهد شد. کلیدها را میتوان به صورت یک فایل متنی با درج یک کلید عمومی در هر خط یا به صورت فهرست ابطال کلید (KRL) اوپناساساچ همانطور که توسط ssh-keygen(1) تولید میشود مشخص کرد. این فایل ممکن است برای هر تلاش احراز هویت کلید عمومیِ دریافت شده توسط sshd(8) بررسی شود و محتویات آن باید در تمام زمانها یکدست و منسجم باشد، بنابراین تنها باید به طور اتمیک جایگزین شود و هرگز نباید در حین اجرای سرور درجا تغییر یابد. برای اطلاعات بیشتر در مورد KRLها، بخش KEY REVOCATION LISTS را در ssh-keygen(1) ببینید. RDomain- یک دامنهٔ
مسیریابی
صریح را
مشخص
میکند که
پس از تکمیل
احراز هویت
اعمال
میشود.
نشست کاربر
و همچنین هر
سوکت IP
فورواردشده
یا شنونده،
به این
rdomain(4)
متصل خواهد
شد. اگر
دامنهٔ
مسیریابی
روی
%Dتنظیم شود، دامنهای که اتصال ورودی در آن دریافت شده بود اعمال خواهد شد. SecurityKeyProvider- مسیری را به یک کتابخانه مشخص میکند که هنگام بارگذاری کلیدهای میزبانیشده روی احراز هویتکنندهٔ FIDO استفاده خواهد شد، و پشتیبانی داخلی USB HID پیشفرض را لغو میکند.
SetEnv- یک یا چند
متغیر
محیطی را
برای تنظیم
در
نشستهای
فرزندی که
توسط
sshd(8)
شروع
میشوند به
صورت “NAME=VALUE”
مشخص
میکند.
مقدار
متغیر
محیطی
میتواند
درون
نقلقول
قرار گیرد
(برای مثال
اگر حاوی
نویسههای
فاصله
باشد).
متغیرهای
محیطی
تعیینشده
توسط
SetEnvمحیط پیشفرض و هرگونه متغیر مشخصشده توسط کاربر از طریقAcceptEnvیاPermitUserEnvironmentرا بازنویسی (لغو) میکنند. SshdAuthPath- مسیر
پیشفرض به
باینری
sshd-authرا که برای تکمیل احراز هویت کاربر فراخوانی میشود بازنویسی میکند. پیشفرض /usr/lib/ssh/sshd-auth است. این گزینه برای استفاده در آزمونها در نظر گرفته شده است. SshdSessionPath- مسیر
پیشفرض به
باینری
sshd-sessionرا که برای مدیریت هر اتصال فراخوانی میشود لغو میکند. پیشفرض /usr/lib/ssh/sshd-session است. این گزینه برای استفاده توسط آزمونها در نظر گرفته شده است. StreamLocalBindMask- ماسک حالت
ایجاد فایل
اکتال (umask)
مورد
استفاده
هنگام
ایجاد یک
فایل سوکت
دامنه
یونیکس
برای
فورواردینگ
پورت محلی
یا راه دور
را تنظیم
میکند. این
گزینه تنها
برای
فورواردینگ
پورت به یک
فایل سوکت
دامنه
یونیکس
استفاده
میشود.
مقدار پیشفرض 0177 است که یک فایل سوکت دامنه یونیکس ایجاد میکند که تنها توسط مالک قابل خواندن و نوشتن است. توجه داشته باشید که همه سیستمعاملها حالت فایل را روی فایلهای سوکت دامنه یونیکس رعایت نمیکنند.
StreamLocalBindUnlink- مشخص
میکند که
آیا یک فایل
سوکت دامنه
یونیکسِ
موجود برای
فورواردینگ
پورت محلی
یا راه دور،
پیش از
ایجاد فایل
جدید حذف
شود یا خیر.
اگر فایل
سوکت از قبل
وجود داشته
باشد و
StreamLocalBindUnlinkفعال نباشد،sshdقادر نخواهد بود پورت را به فایل سوکت دامنه یونیکس فوروارد کند. این گزینه تنها برای فورواردینگ پورت به یک فایل سوکت دامنه یونیکس استفاده میشود.آرگومان باید
yesیاnoباشد. پیشفرضnoاست. StrictModes- مشخص
میکند که
آیا sshd(8)
باید
حالتهای
فایل و
مالکیت
فایلها و
دایرکتوری
خانگی
کاربر را
پیش از
پذیرش ورود
بررسی کند
یا خیر. این
مورد
معمولاً
مطلوب است
زیرا افراد
تازهکار
گاهی
تصادفاً
دایرکتوری
یا
فایلهای
خود را برای
همه قابل
نوشتن باقی
میگذارند.
پیشفرض
yesاست. توجه داشته باشید که این مورد برایChrootDirectoryاعمال نمیشود، که دسترسیها و مالکیت آن بدون قید و شرط بررسی میگردد. Subsystem- یک
زیرسیستم
خارجی (برای
مثال دیمون
انتقال
فایل) را
پیکربندی
میکند.
آرگومانها
باید یک نام
زیرسیستم و
یک دستور
(همراه با
آرگومانهای
اختیاری)
برای اجرا
در هنگام
درخواست
زیرسیستم
باشند.
دستور
sftp-serverزیرسیستم انتقال فایل SFTP را پیادهسازی میکند.همچنین نام
internal-sftpیک سرور SFTP درونفرآیندی را پیادهسازی میکند. این گزینه ممکن است پیکربندیهایی را که ازChrootDirectoryبرای تحمیل یک ریشه سیستم فایل متفاوت بر کلاینتها استفاده میکنند سادهتر کند. این مورد همان آرگومانهای خط فرمانsftp-serverرا میپذیرد و با وجود اینکه درونفرآیندی است، تنظیماتی مانندLogLevelیاSyslogFacilityبر آن اعمال نمیشوند و باید صراحتاً از طریق آرگومانهای خط فرمان تنظیم گردند.به صورت پیشفرض هیچ زیرسیستمی تعریف نشده است.
SyslogFacility- کد تسهیلات (facility code) را که هنگام ثبت پیامهای لاگ از sshd(8) استفاده میشود ارائه میدهد. مقادیر ممکن عبارتند از: DAEMON، USER، AUTH، LOCAL0، LOCAL1، LOCAL2، LOCAL3، LOCAL4، LOCAL5، LOCAL6، LOCAL7. پیشفرض AUTH است.
TCPKeepAlive- مشخص
میکند که
آیا سیستم
باید
پیامهای TCP
keepalive را به طرف
مقابل
ارسال کند
یا خیر. اگر
ارسال
شوند، قطع
اتصال یا از
کار افتادن
یکی از
ماشینها
به درستی
شناسایی
میشود. با
این حال،
این بدان
معناست که
اتصالات در
صورت قطع
موقت مسیر
از بین
خواهند رفت
و برخی
افراد آن را
آزاردهنده
میدانند.
از سوی
دیگر، اگر
پیامهای keepalive
در TCP ارسال
نشوند،
نشستها
ممکن است تا
ابد روی
سرور معلق
بمانند و
کاربران
"شبح (ghost)"
برجای
گذاشته و
منابع سرور
را مصرف
کنند.
پیشفرض
yesاست (برای ارسال پیامهای TCP keepalive)، و سرور متوجه قطع شدن شبکه یا کرش کردن میزبان کلاینت خواهد شد. این کار از معلق ماندن بیپایان نشستها جلوگیری میکند.برای غیرفعال کردن پیامهای TCP keepalive، مقدار باید روی
noتنظیم شود. TrustedUserCAKeys- فایلی حاوی
کلیدهای
عمومی
مراجع صدور
گواهی را
مشخص
میکند که
برای امضای
گواهیهای
کاربر جهت
احراز هویت
مورد
اعتماد
هستند، یا
noneبرای استفاده نکردن از آن. کلیدها در هر خط یکی فهرست میشوند؛ خطوط خالی و توضیحاتی که با ‘#’ آغاز میشوند مجاز هستند. اگر گواهیای برای احراز هویت ارائه شود و کلید CA امضاکنندهٔ آن در این فایل فهرست شده باشد، میتواند برای احراز هویت هر کاربری که در فهرست شناسههای هویت (principals) گواهی درج شده است استفاده شود. توجه داشته باشید گواهیهایی که فاقد فهرست شناسههای هویت هستند، برای احراز هویت با استفاده از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 و دستورالعملهایMatchHostدرsshd_configاستفاده شوند. UsePAM- رابط
کاربری
ماژول
احراز هویت
متصلپذیر
(PAM) را فعال
میکند. اگر
روی
yesتنظیم شود، این گزینه احراز هویت PAM را با استفاده ازKbdInteractiveAuthenticationوPasswordAuthenticationعلاوه بر پردازش ماژول حساب و نشست PAM برای تمام انواع احراز هویت فعال میکند.از آنجا که احراز هویت تعاملی با صفحهکلید در PAM معمولاً نقشی معادل با احراز هویت گذرواژه دارد، شما باید یکی از گزینههای
PasswordAuthenticationیاKbdInteractiveAuthenticationرا غیرفعال کنید.اگر
UsePAMفعال باشد، شما قادر نخواهید بود sshd(8) را به عنوان یک کاربر غیر root اجرا کنید. پیشفرضnoاست. VersionAddendum- به صورت
اختیاری
متن اضافی
را برای
پیوستن به
بنر پروتکل
SSH که توسط
کارساز
هنگام
اتصال
ارسال
میشود
مشخص
میکند.
پیشفرض
noneاست. X11DisplayOffset- اولین شماره نمایشگر موجود را برای فورواردینگ X11 توسط sshd(8)مشخص میکند. این کار مانع از تداخل sshd با سرورهای واقعی X11 میشود. پیشفرض 10 است.
X11Forwarding- مشخص
میکند که
آیا
فورواردینگ
X11 مجاز است
یا خیر.
آرگومان
باید
yesیاnoباشد. پیشفرضnoاست.هنگامی که فورواردینگ X11 فعال است، در صورتی که نمایشگر پراکسیِ sshd(8) طوری پیکربندی شده باشد که روی آدرس عمومی (wildcard) شنود کند، ممکن است خطرات امنیتی بیشتری متوجه کارساز و نمایشگرهای کلاینت شود (به
X11UseLocalhostمراجعه کنید)، هرچند این حالت پیشفرض نیست. علاوه بر این، جعل احراز هویت و اعتبارسنجی و جایگزینی دادههای احراز هویت در سمت کلاینت رخ میدهد. خطر امنیتی استفاده از فورواردینگ X11 این است که کارساز نمایشگر X11 کلاینت ممکن است در معرض حمله قرار گیرد هنگامی که کلاینت SSH درخواست فورواردینگ میکند (هشدارهای مربوط بهForwardX11در ssh_config(5) را ببینید). مدیر سیستم ممکن است این رویکرد را داشته باشد که بخواهد از کلاینتهایی که ممکن است با درخواست ناآگاهانهٔ فورواردینگ X11 خود را در معرض حمله قرار دهند محافظت کند، که میتواند تنظیمnoرا توجیه نماید.توجه داشته باشید که غیرفعال کردن فورواردینگ X11 مانع از فوروارد کردن ترافیک X11 توسط کاربران نمیشود، چرا که کاربران همیشه میتوانند فورواردرهای خود را نصب کنند.
X11UseLocalhost- مشخص
میکند که
آیا sshd(8)
باید سرور
فورواردینگ
X11 را به آدرس
loopback پیوند دهد
یا به آدرس
عمومی (wildcard). به
صورت
پیشفرض، sshd
سرور
فورواردینگ
را به آدرس
loopback پیوند
میدهد و
بخش نام
میزبان
متغیر
محیطی
DISPLAYرا رویlocalhostتنظیم میکند. این کار مانع از اتصال میزبانهای راه دور به نمایشگر پراکسی میشود. با این حال، برخی کلاینتهای قدیمیتر X11 ممکن است با این پیکربندی کار نکنند.X11UseLocalhostرا میتوان رویnoتنظیم کرد تا مشخص شود که سرور فورواردینگ باید به آدرس عمومی متصل شود. آرگومان بایدyesیاnoباشد. پیشفرضyesاست. XAuthLocation- نام مسیر
کامل
برنامهٔ
xauth(1) را
مشخص
میکند، یا
noneبرای استفاده نکردن از آن. پیشفرض /usr/bin/xauth است.
قالبهای زمان (TIME FORMATS)
آرگومانهای خط فرمان و گزینههای فایل پیکربندی sshd(8) که زمان را مشخص میکنند میتوانند با استفاده از دنبالهای به شکل زیر بیان شوند: time[qualifier], که در آن time یک مقدار عدد صحیح مثبت است و qualifier یکی از موارد زیر است:
هر یک از اعضای این دنباله برای محاسبه مقدار زمان کل با یکدیگر جمع میشوند.
مثالهای قالب زمان:
- 600
- 600 ثانیه (10 دقیقه)
- 10m
- 10 دقیقه
- 1h30m
- 1 ساعت و 30 دقیقه (90 دقیقه)
نشانهها (TOKENS)
آرگومانهای برخی از کلیدواژهها میتوانند از نشانهها استفاده کنند که در زمان اجرا بسط داده میشوند. نشانهها بدون نقلقول یا اسکیپ کردن نویسههای پوسته بسط مییابند. این مسئولیت مدیر سیستم است که اطمینان حاصل کند آنها در چارچوب استفادهٔ خود امن هستند.
نشانههای
پشتیبانیشده
در sshd_config
عبارتند
از:
- %%
- یک نویسهٔ واقعی ‘%’.
- %C
- نقاط پایانی اتصال را مشخص میکند که شامل چهار مقدار جداشده با فاصله است: آدرس کلاینت، شماره پورت کلاینت، آدرس سرور، و شماره پورت سرور.
- %D
- دامنهٔ مسیریابی که اتصال ورودی در آن دریافت شده است.
- %F
- اثرانگشت کلید مرجع صدور گواهی (CA).
- %f
- اثرانگشت کلید یا گواهی.
- %h
- دایرکتوری خانگی کاربر.
- %i
- شناسه کلید در گواهی.
- %K
- کلید رمزگذاریشده با Base64 مرجع صدور گواهی (CA).
- %k
- کلید یا گواهی رمزگذاریشده با Base64 برای احراز هویت.
- %s
- شماره سریال گواهی.
- %T
- نوع کلید CA.
- %t
- نوع کلید یا گواهی.
- %U
- شناسه عددی کاربر (UID) کاربر هدف.
- %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 را
میپذیرد.
دستور
RoutingDomain
نشانهٔ %D را
میپذیرد.
فایلها (FILES)
- /etc/ssh/sshd_config
- حاوی دادههای پیکربندی برای sshd(8) است. این فایل باید تنها توسط root قابل نوشتن باشد، اما توصیه میشود (اگرچه الزامی نیست) که برای همه قابل خواندن باشد.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
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 پشتیبانی از تفکیک دسترسیها (privilege separation) را مشارکت کردند.
| August 8, 2026 | Linux 6.12.107+deb13-amd64 |