| SSH_CONFIG(5) | File Formats Manual | SSH_CONFIG(5) |
نام (NAME)
ssh_config —
پرونده
پیکربندی
کلاینت OpenSSH
توضیحات (DESCRIPTION)
ssh(1) دادههای پیکربندی را از منابع زیر و به ترتیب زیر دریافت میکند:
- گزینههای خط فرمان
- پرونده پیکربندی کاربر (~/.ssh/config)
- پرونده پیکربندی سراسری سیستم (/etc/ssh/ssh_config)
مگر در مواردی که خلاف آن ذکر شده باشد، برای هر دستورالعمل پیکربندی، نخستین مقدار مشخصشده اعمال خواهد شد.
پروندههای
پیکربندی
ممکن است
شامل
بخشهایی
باشند که با
دستورالعملهای
شرطی Host
یا Match از
یکدیگر
تفکیک
شدهاند.
پیکربندی
موجود در
این بخشها
تنها در
صورتی
اعمال
میشود که
شرایط
دستورالعمل
شرطیِ
آغازگر آن
بخش برقرار
باشد.
از آنجا که نخستین مقدار بهدستآمده برای هر دستورالعمل به کار میرود، اعلانهای ویژهتر مربوط به میزبانها باید در نزدیکی ابتدای پرونده، و پیشفرضهای عمومی در انتهای آن قرار گیرند.
پرونده
شامل
جفتهای
دستورالعمل/مقدار
است، هر
کدام در یک
سطر.
سطرهایی که
با ‘#’
آغاز
میشوند و
سطرهای
خالی به
عنوان
توضیح
(کامنت) در
نظر گرفته
میشوند.
علامت
‘#’ در
خارج از یک
رشتهٔ
نقلقولشده
میتواند
برای
افزودن
توضیح به
انتهای یک
سطر به کار
رود.
فاصلههای
خالی در
ابتدا یا
انتهای
سطرها
نادیده
گرفته
میشوند.
مقادیر
میتوانند
به صورت
اختیاری
درون
علامتهای
نقلقول
جفتی (") قرار
گیرند تا
آرگومانهای
حاوی فاصله
را نمایش
دهند.
دستورالعملهای
پیکربندی
از مقادیر
خود با
فاصله خالی
یا دقیقاً
یک نویسهٔ
‘=’ (که
میتواند
با فاصله
احاطه شود)
جدا
میشوند؛
قالب دوم
برای
جلوگیری از
نیاز به
نقلقول
کردن
فاصلههای
خالی هنگام
مشخص کردن
گزینههای
پیکربندی
با استفاده
از گزینهٔ
-o در ssh,
scp و sftp
مفید است.
کلیدواژههای مجاز و معانی آنها به شرح زیر است (توجه داشته باشید که کلیدواژهها به بزرگی و کوچکی حروف حساس نیستند ولی آرگومانها حساس هستند):
Host- اعلانهای
پس از خود
را (تا
کلیدواژهٔ
بعدیِ
HostیاMatch) تنها به میزبانهایی محدود میکند که با یکی از الگوهای ارائهشده پس از کلیدواژه مطابقت داشته باشند. اگر بیش از یک الگو ارائه شود، باید با فاصله خالی از یکدیگر جدا شوند. یک ‘*’ تک به عنوان الگو میتواند برای ارائه پیشفرضهای عمومی برای تمامی میزبانها به کار رود. میزبان معمولاً همان آرگومان hostname دادهشده در خط فرمان است (برای موارد استثنا به کلیدواژهٔCanonicalizeHostnameمراجعه کنید).یک مدخل الگو میتواند با افزودن یک علامت تعجب در ابتدای آن (‘!’) نفی شود. اگر یک مدخل نفیشده مطابقت داشته باشد، مدخل
Hostصرفنظر از اینکه آیا الگوهای دیگر در همان سطر تطابق دارند یا خیر، نادیده گرفته میشود. بنابراین، تطابقهای نفیشده برای ارائه استثناها روی تطابقهای نویسه عمومی (wildcard) مفید هستند.برای اطلاعات بیشتر درباره الگوها به بخش الگوها (PATTERNS) مراجعه کنید.
Match- اعلانهای
پس از خود
را (تا
کلیدواژهٔ
بعدیِ
HostیاMatch) تنها به زمانی محدود میکند که شرایط پس از کلیدواژهٔMatchبرقرار باشند. شرایط تطابق با استفاده از یک یا چند معیار یا توکن تکیِallکه همیشه برقرار است، مشخص میشوند. کلیدواژههای معیارهای موجود عبارتند از:canonical,final,exec,localnetwork,host,originalhost,tagged,command,user,localuserوversion. معیارallباید به تنهایی یا بلافاصله پس ازcanonicalیاfinalظاهر شود. سایر معیارها را میتوان به دلخواه با یکدیگر ترکیب کرد. تمامی معیارها به جزall,canonicalوfinalنیازمند یک آرگومان هستند. معیارها میتوانند با افزودن یک علامت تعجب در ابتدا (‘!’) نفی شوند.کلیدواژهٔ
canonicalتنها زمانی مطابقت دارد که پرونده پیکربندی پس از استانداردسازی نام میزبان (canonicalization) مجدداً تجزیه شود (به گزینهٔCanonicalizeHostnameمراجعه کنید). این ممکن است برای مشخص کردن شرایطی مفید باشد که تنها با نامهای استاندارد میزبان کار میکنند.کلیدواژهٔ
finalدرخواست میکند که پیکربندی مجدداً تجزیه شود (صرفنظر از اینکه آیاCanonicalizeHostnameفعال باشد یا خیر)، و تنها در طول این گذر نهایی مطابقت مییابد. اگرCanonicalizeHostnameفعال باشد، آنگاهcanonicalوfinalدر طول همان گذر مطابقت مییابند.کلیدواژهٔ
execدستور مشخصشده را در پوستهٔ کاربر اجرا میکند. اگر دستور وضعیت خروج صفر برگرداند، شرط برقرار تلقی میشود. دستورات حاوی نویسههای فاصله خالی باید نقلقول شوند. آرگومانهایexecتوکنهای شرح دادهشده در بخش توکنها (TOKENS) را میپذیرند.کلیدواژهٔ
localnetworkنشانیهای رابطهای شبکه محلی فعال را در برابر فهرست شبکههای ارائهشده در قالب CIDR مطابقت میدهد. این میتواند برای تغییر پیکربندی مؤثر روی دستگاههایی که میان شبکهها جابهجا میشوند مناسب باشد. توجه داشته باشید که نشانی شبکه در بسیاری از شرایط یک معیار قابل اعتماد نیست (مثلاً زمانی که شبکه به صورت خودکار با استفاده از DHCP پیکربندی میشود) و بنابراین در صورت استفاده از آن برای کنترل پیکربندیهای حساس از نظر امنیتی، باید احتیاط به خرج داد.معیارهای سایر کلیدواژهها باید مدخلهای تکی یا فهرستهای جداشده با کاما باشند و ممکن است از عملگرهای نویسه عمومی و نفی که در بخش الگوها (PATTERNS) شرح داده شدهاند استفاده کنند.
معیارهای کلیدواژهٔ
hostدر برابر نام میزبان مقصد، پس از هرگونه جایگزینی توسط گزینههایHostnameیاCanonicalizeHostnameمطابقت داده میشوند. کلیدواژهٔoriginalhostدر برابر نام میزبان همانطور که در خط فرمان مشخص شده بود مطابقت داده میشود.کلیدواژهٔ
taggedبا نام برچسبی که توسط یک دستورالعمل پیشینTagیا در خط فرمان ssh(1) با استفاده از پرچم-Pمشخص شده است، مطابقت مییابد. کلیدواژهٔcommandبا دستور راه دور درخواستشده یا نام زیرسیستمی که فراخوانی میشود (مثلاً "sftp" برای یک نشست SFTP) مطابقت مییابد. رشتهٔ خالی با حالتی مطابقت خواهد داشت که هیچ دستور یا برچسبی مشخص نشده باشد، یعنی ‘Match tag ""’. کلیدواژهٔversionدر برابر رشته نسخهٔ ssh(1) مطابقت داده میشود، به عنوان مثال “OpenSSH_10.0”.کلیدواژهٔ
userبا نام کاربری هدف در میزبان راه دور مطابقت داده میشود. کلیدواژهٔlocaluserبا نام کاربر محلی که ssh(1) را اجرا میکند مطابقت دارد (این کلیدواژه ممکن است در پروندههای سراسریssh_configسیستم مفید باشد).در نهایت، کلیدواژهٔ
sessiontypeبا نوع نشست درخواستشده مطابقت مییابد، که میتواند یکی از مواردshellبرای نشستهای تعاملی،execبرای نشستهای اجرای دستور،subsystemبرای فراخوانی زیرسیستمها مانند sftp(1) ، یاnoneبرای نشستهای صرفاً ترابری باشد، مانند زمانی که ssh(1) با پرچم-Nآغاز شده باشد. Include- پرونده (یا
پروندههای)
پیکربندی
مشخصشده
را درج
میکند.
میتوان
چندین نام
مسیر را
مشخص کرد و
هر نام مسیر
ممکن است
شامل
نویسههای
عمومی
glob(7) ،
توکنهای
شرح
دادهشده
در بخش
توکنها
(TOKENS) ،
متغیرهای
محیطی شرح
دادهشده
در بخش
متغیرهای
محیطی (ENVIRONMENT VARIABLES)
و برای
پیکربندیهای
کاربر،
ارجاعات
مشابه
پوسته با
‘~’ به
دایرکتوری
خانگی
کاربر باشد.
نویسههای
عمومی باز
شده و به
ترتیب
الفبایی
پردازش
خواهند شد.
پروندههای
فاقد مسیر
مطلق، در
صورتی که در
پرونده
پیکربندی
کاربر درج
شده باشند،
در ~/.ssh و در
صورتی که از
پرونده
پیکربندی
سیستم درج
شده باشند،
در /etc/ssh فرض
میشوند.
دستورالعمل
Includeممکن است درون یک بلوکMatchیاHostقرار گیرد تا درج مشروط را انجام دهد. AddKeysToAgent- مشخص
میکند که
آیا کلیدها
باید به
صورت
خودکار به
یک ssh-agent(1)
در حال اجرا
افزوده
شوند یا
خیر. اگر
این گزینه
روی
yesتنظیم شده باشد و کلیدی از یک پرونده بارگیری شود، کلید و گذرواژهٔ آن با طول عمر پیشفرض به کارگزار اضافه میشوند، گویی توسط ssh-add(1) اضافه شدهاند. اگر این گزینه رویaskتنظیم شود، ssh(1) پیش از افزودن کلید، نیازمند تأیید با استفاده از برنامهٔSSH_ASKPASSخواهد بود (برای جزئیات به ssh-add(1) مراجعه کنید). اگر این گزینه رویconfirmتنظیم شود، هر بار استفاده از کلید باید تأیید شود، گویی گزینهٔ-cبه ssh-add(1) داده شده است. اگر این گزینه رویnoتنظیم شود، هیچ کلیدی به کارگزار اضافه نمیشود. همچنین، این گزینه میتواند به عنوان یک بازه زمانی با استفاده از قالب شرح دادهشده در بخش قالبهای زمانی (TIME FORMATS) از sshd_config(5) مشخص شود تا طول عمر کلید در ssh-agent(1) تعیین گردد، که پس از آن به صورت خودکار حذف خواهد شد. آرگومان بایدno(پیشفرض)،yes ،confirm(اختیاراً همراه با یک بازه زمانی)،askیا یک بازه زمانی باشد. AddressFamily- خانوادهٔ
آدرس مورد
استفاده
هنگام
اتصال را
مشخص
میکند.
آرگومانهای
معتبر
عبارتند از
any(پیشفرض)،inet(فقط استفاده از IPv4)، یاinet6(فقط استفاده از IPv6). BatchMode- اگر روی
yesتنظیم شود، تعامل کاربر مانند اعلانهای درخواست گذرواژه و درخواستهای تأیید کلید میزبان غیرفعال خواهد شد. این گزینه در اسکریپتها و سایر کارهای دستهای (batch) که در آنها کاربری برای تعامل با ssh(1) حضور ندارد، مفید است. آرگومان بایدyesیاno(پیشفرض) باشد. BindAddress- از آدرس مشخصشده در ماشین محلی به عنوان آدرس مبدأ اتصال استفاده میکند. تنها در سیستمهایی با بیش از یک آدرس کاربرد دارد.
BindInterface- از آدرس رابط شبکه مشخصشده در ماشین محلی به عنوان آدرس مبدأ اتصال استفاده میکند.
CanonicalDomains- هنگامی که
CanonicalizeHostnameفعال است، این گزینه فهرستی از پسوندهای دامنه را مشخص میکند که باید برای یافتن میزبان مقصد مشخصشده در آنها جستجو شود. CanonicalizeFallbackLocal- مشخص
میکند که
آیا در صورت
شکست
استانداردسازی
نام
میزبان، با
خطا متوقف
شود یا خیر.
مقدار
پیشفرض،
yes ،تلاش میکند نام میزبان غیراختصاصی (unqualified) را با استفاده از قوانین جستجوی تحلیلگر نام (resolver) سیستم جستجو کند. مقدارnoباعث میشود ssh(1) در صورتی کهCanonicalizeHostnameفعال باشد و نام میزبان هدف در هیچیک از دامنههای مشخصشده توسطCanonicalDomainsیافت نشود، بلافاصله با خطا متوقف شود. CanonicalizeHostname- کنترل
میکند که
آیا
استانداردسازی
صریح نام
میزبان
انجام شود
یا خیر.
پیشفرض،
no ،هیچ بازنویسی نامی انجام نداده و به تحلیلگر سیستم اجازه میدهد تمام جستجوهای نام میزبان را مدیریت کند. اگر رویyesتنظیم شود، آنگاه برای اتصالاتی که ازProxyCommandیاProxyJumpاستفاده نمیکنند، ssh(1) تلاش میکند تا نام میزبان مشخصشده در خط فرمان را با استفاده از پسوندهایCanonicalDomainsو قوانینCanonicalizePermittedCNAMEsاستانداردسازی کند. اگرCanonicalizeHostnameرویalwaysتنظیم شود، آنگاه استانداردسازی روی اتصالات پروکسیشده نیز اعمال میشود.اگر این گزینه فعال باشد، پروندههای پیکربندی دوباره با استفاده از نام هدف جدید پردازش میشوند تا هرگونه پیکربندی جدید در بندهای مطابقتیافتهٔ
HostوMatchاعمال گردد. مقدارnoneاستفاده از میزبانProxyJumpرا غیرفعال میکند. CanonicalizeMaxDots- حداکثر تعداد نویسههای نقطه در یک نام میزبان را پیش از غیرفعال شدن استانداردسازی مشخص میکند. پیشفرض، 1، اجازهٔ یک نقطهٔ منفرد را میدهد (یعنی hostname.subdomain).
CanonicalizePermittedCNAMEs- قوانینی را
مشخص
میکند تا
تعیین کند
آیا هنگام
استانداردسازی
نامهای
میزبان
باید
رکوردهای CNAME
دنبال شوند
یا خیر.
قوانین
شامل یک یا
چند
آرگومان به
شکل
source_domain_list:target_domain_list
هستند، که
در آن source_domain_list
یک فهرست
الگویی از
دامنههایی
است که ممکن
است در
استانداردسازی
CNAMEها را
دنبال
کنند، و
target_domain_list یک
فهرست
الگویی از
دامنههایی
است که
آنها
مجازند به
آنها
تفکیک شوند.
برای مثال، "*.a.example.com:*.b.example.com,*.c.example.com" به نامهای میزبان منطبق با "*.a.example.com" اجازه میدهد تا به نامهایی در دامنههای "*.b.example.com" یا "*.c.example.com" استانداردسازی شوند.
یک آرگومان منفردِ "none" باعث میشود هیچ CNAMEای برای استانداردسازی در نظر گرفته نشود. این رفتار پیشفرض است.
CASignatureAlgorithms- مشخص
میکند که
چه
الگوریتمهایی
برای امضای
گواهیها
توسط مراجع
صدور گواهی
(CA) مجاز
هستند.
پیشفرض
عبارت است
از:
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
اگر فهرست مشخصشده با یک نویسهٔ ‘+’ آغاز شود، الگوریتمهای مشخصشده به جای جایگزینی، به مجموعه پیشفرض افزوده خواهند شد. اگر فهرست مشخصشده با یک نویسهٔ ‘-’ آغاز شود، الگوریتمهای مشخصشده (شامل نویسههای عمومی) به جای جایگزینی، از مجموعه پیشفرض حذف خواهند شد.
ssh(1) گواهیهای میزبان امضاشده با استفاده از الگوریتمهایی غیر از موارد مشخصشده را نخواهد پذیرفت.
CertificateFile- پروندهای
را مشخص
میکند که
گواهی
کاربر از آن
خوانده
میشود.
برای
استفاده از
این گواهی
باید کلید
خصوصی
متناظر به
طور
جداگانه
ارائه شود،
یا از طریق
یک
دستورالعمل
IdentityFileیا پرچم-iدر ssh(1) ، یا از طریق ssh-agent(1) ، یا از طریق یکPKCS11ProviderیاSecurityKeyProvider.آرگومانهای
CertificateFileمیتوانند از نحو تیلدا برای ارجاع به دایرکتوری خانگی کاربر، توکنهای شرح دادهشده در بخش توکنها (TOKENS) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کنند.امکان تعیین چندین پرونده گواهی در پروندههای پیکربندی وجود دارد؛ این گواهیها به ترتیب آزمایش خواهند شد. چندین دستورالعمل
CertificateFileبه فهرست گواهیهای مورد استفاده برای احراز هویت اضافه خواهند شد. ChannelTimeout- مشخص
میکند که
آیا و با چه
سرعتی
ssh(1)
باید
کانالهای
غیرفعال را
ببندد.
مهلتهای
زمانی به
صورت یک یا
چند جفت
“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 را نمیبندد، و مانع از درخواست کانال دیگری از همان نوع توسط کلاینت نمیشود. به ویژه، منقضی شدن یک نشست بازارسالِ غیرفعال مانع از ایجاد مجدد یک بازارسال مشابه بعدی نمیشود.
پیشفرض این است که کانالها از هر نوعی بر اثر عدم فعالیت منقضی نشوند.
CheckHostIP- اگر روی
yesتنظیم شود، ssh(1) علاوه بر این، نشانی IP میزبان را در پروندهٔ known_hosts بررسی خواهد کرد. این به آن امکان میدهد تا تغییر کلید میزبان ناشی از جعل DNS (DNS spoofing) را تشخیص دهد و صرفنظر از تنظیماتStrictHostKeyChecking ،نشانیهای میزبانهای مقصد را در این فرآیند به ~/.ssh/known_hosts اضافه خواهد کرد. اگر گزینه رویno(پیشفرض) تنظیم شود، این بررسی اجرا نخواهد شد. 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" نیز به دست آورد.
ClearAllForwardings- مشخص
میکند که
تمام
بازارسالهای
پورت محلی،
راه دور و
پویا که در
پروندههای
پیکربندی
یا در خط
فرمان مشخص
شدهاند،
پاک شوند.
این گزینه
در درجه اول
زمانی مفید
است که از
خط فرمان
ssh(1)
برای پاک
کردن
بازارسالهای
پورتِ
تنظیمشده
در
پروندههای
پیکربندی
استفاده
شود، و به
طور خودکار
توسط
scp(1) و
sftp(1)
تنظیم
میشود.
آرگومان
باید
yesیاno(پیشفرض) باشد. Compression- مشخص
میکند که
آیا از
فشردهسازی
استفاده
شود یا خیر.
آرگومان
باید
yesیاno(پیشفرض) باشد.فشردهسازی بر تمام ترافیکی که از طریق اتصال SSH جریان دارد اعمال میشود. اگر ترافیک غیرقابلاعتماد (مانند یک پورت بازارسالشدهٔ باز) در کنار ترافیک قابلاعتماد روی این اتصال مجاز باشد، فشردهسازی ممکن است اطلاعاتی درباره محتوای نشست نشت دهد. به همین دلیل، فعال کردن فشردهسازی برای اتصالاتی که ترافیک قابلاعتماد و غیرقابلاعتماد را به اشتراک میگذارند توصیه نمیشود.
ConnectionAttempts- تعداد دفعات تلاش (یک بار در هر ثانیه) پیش از خروج را مشخص میکند. آرگومان باید یک عدد صحیح باشد. این گزینه در اسکریپتها در صورتی که اتصال گهگاه با شکست مواجه شود، مفید است. پیشفرض 1 است.
ConnectTimeout- مهلت زمانی (بر حسب ثانیه) مورد استفاده هنگام اتصال به سرور SSH را به جای استفاده از مهلت زمانی پیشفرض TCP سیستم مشخص میکند. این مهلت زمانی هم برای برقراری اتصال و هم برای انجام دستتکانی اولیه پروتکل SSH و تبادل کلید اعمال میشود.
ControlMaster- امکان
اشتراکگذاری
چندین نشست
را از طریق
یک اتصال
شبکه منفرد
فراهم
میکند (multiplexing).
هنگامی که
روی
yesتنظیم شود، ssh(1) روی یک سوکت کنترلی که با استفاده از آرگومانControlPathمشخص شده است، به اتصالات گوش فرا میدهد. نشستهای دیگر میتوانند با استفاده از همانControlPathو در حالی کهControlMasterرویno(پیشفرض) تنظیم شده است به این سوکت متصل شوند. این نشستها تلاش خواهند کرد به جای آغاز اتصالات جدید، از اتصال شبکه نمونهٔ اصلی (master) مجدداً استفاده کنند، اما در صورتی که سوکت کنترلی وجود نداشته باشد یا در حال گوش دادن نباشد، به برقراری اتصال عادی رجوع میکنند.تنظیم این گزینه روی
askباعث میشود ssh(1) به اتصالات کنترلی گوش دهد، اما نیازمند تأیید با استفاده از ssh-askpass(1) باشد. اگرControlPathنتواند باز شود، ssh(1) بدون اتصال به نمونهٔ اصلی به کار خود ادامه میدهد.بازارسال X11 و ssh-agent(1) بر روی این اتصالات چندگانه پشتیبانی میشود، با این حال نمایشگر و کارگزارِ بازارسالشده همان مواردی خواهند بود که به اتصال اصلی تعلق دارند؛ یعنی امکان بازارسال چندین نمایشگر یا کارگزار وجود ندارد.
دو گزینهٔ اضافی امکان تسهیم فرصتطلبانه (opportunistic multiplexing) را فراهم میکنند: تلاش برای استفاده از یک اتصال اصلی، اما در صورت عدم وجود آن، رجوع به ایجاد یک اتصال جدید. این گزینهها عبارتند از:
autoوautoask. گزینهٔ دوم مانند گزینهٔaskنیازمند تأیید است. ControlPath- مسیر سوکت
کنترلی
مورد
استفاده
برای
اشتراک
اتصال را
همانطور
که در بخش
ControlMasterدر بالا شرح داده شد، یا رشتهٔnoneرا برای غیرفعال کردن اشتراک اتصال مشخص میکند. آرگومانهایControlPathمیتوانند از نحو تیلدا برای ارجاع به دایرکتوری خانگی کاربر، توکنهای شرح دادهشده در بخش توکنها (TOKENS) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کنند. توصیه میشود هرControlPathکه برای اشتراکگذاری فرصتطلبانه اتصال استفاده میشود حداقل شامل %h، %p و %r (یا به صورت جایگزین %C) باشد و در دایرکتوریای قرار گیرد که توسط سایر کاربران قابل نوشتن نباشد. این تضمین میکند که اتصالات مشترک به صورت یکتا شناسایی شوند. ControlPersist- هنگامی که
همراه با
ControlMasterاستفاده شود، مشخص میکند که پس از بسته شدن اتصال اولیهٔ کلاینت، اتصال اصلی باید در پسزمینه (در انتظار اتصالات کلاینتهای آینده) باز بماند. اگر رویno(پیشفرض) تنظیم شود، اتصال اصلی در پسزمینه قرار نخواهد گرفت و به محض بسته شدن اتصال اولیهٔ کلاینت، بسته خواهد شد. اگر رویyesیا 0 تنظیم شود، اتصال اصلی به طور نامحدود در پسزمینه باقی خواهد ماند (تا زمانی که متوقف شود یا از طریق سازوکاری مانند "ssh -O exit" بسته شود). اگر روی یک زمان بر حسب ثانیه، یا زمانی در هر یک از قالبهای مستندشده در sshd_config(5) تنظیم شود، اتصال اصلی پسزمینهشده پس از اینکه به مدت زمان مشخصشده بدون فعالیت (بدون هیچ اتصال کلاینتی) باقی ماند، به صورت خودکار پایان خواهد یافت. DynamicForward- مشخص
میکند که
یک پورت TCP در
ماشین محلی
از طریق
کانال امن
بازارسال
شود، و سپس
از پروتکل
برنامه
کاربردی
برای تعیین
محل اتصال
از طریق
ماشین راه
دور
استفاده
شود.
آرگومان باید به شکل [bind_address:]port باشد. نشانیهای IPv6 را میتوان با قرار دادن نشانیها در قلابها (کروشهها) مشخص کرد. به طور پیشفرض، پورت محلی مطابق با تنظیمات
GatewayPortsمتصل (bind) میشود. با این حال، میتوان از یک bind_address صریح برای متصل کردن اتصال به یک نشانی مشخص استفاده کرد. یک bind_address با مقدارlocalhostنشان میدهد که پورت گوشدهنده تنها برای استفاده محلی متصل شود، در حالی که یک نشانی خالی یا ‘*’ نشان میدهد که پورت باید از تمام رابطها در دسترس باشد.در حال حاضر پروتکلهای SOCKS4 و SOCKS5 پشتیبانی میشوند و ssh(1) به عنوان یک سرور SOCKS عمل خواهد کرد. میتوان چندین بازارسال را مشخص کرد و بازارسالهای اضافی را میتوان در خط فرمان ارائه داد. تنها مدیر سیستم (کاربر ارشد) میتواند پورتهای ممتاز (privileged) را بازارسال کند.
EnableEscapeCommandline- گزینهٔ خط
فرمان را در
منوی
EscapeCharبرای نشستهای تعاملی فعال میکند (پیشفرض ‘~C’). به طور پیشفرض، خط فرمان غیرفعال است. EnableSSHKeysign- تنظیم این
گزینه روی
yesدر پرونده پیکربندی سراسری کلاینت /etc/ssh/ssh_config امکان استفاده از برنامه کمکی ssh-keysign(8) را در طولHostbasedAuthenticationفعال میکند. آرگومان بایدyesیاno(پیشفرض) باشد. این گزینه باید در بخش غیرمرتبط با میزبانهای خاص قرار گیرد. برای اطلاعات بیشتر به ssh-keysign(8) مراجعه کنید. EscapeChar- نویسهٔ
گریز (escape) را
تنظیم
میکند
(پیشفرض:
‘
~’). نویسهٔ گریز را میتوان در خط فرمان نیز تنظیم کرد. آرگومان باید یک نویسهٔ منفرد، ‘^’ به همراه یک حرف، یاnoneبرای غیرفعال کردن کامل نویسهٔ گریز (و در نتیجه شفاف کردن اتصال برای دادههای دودویی) باشد. ExitOnForwardFailure- مشخص
میکند که
آیا ssh(1)
در صورت عدم
موفقیت در
برقراری
تمام
بازارسالهای
پورت
پویای،
تونل، محلی
و راه دور
درخواستشده
(مثلاً در
صورتی که هر
یک از دو
طرف نتواند
به یک پورت
مشخص متصل
شود و گوش
فرا دهد)،
باید اتصال
را خاتمه
دهد یا خیر.
توجه داشته
باشید که
ExitOnForwardFailureبر روی اتصالاتی که از طریق بازارسالهای پورت برقرار میشوند اعمال نمیشود و برای مثال در صورتی که اتصالات TCP به مقصد نهایی بازارسال شکست بخورد، باعث خروج ssh(1) نخواهد شد. آرگومان بایدyesیاno(پیشفرض) باشد. FingerprintHash- الگوریتم
درهمسازی
مورد
استفاده
هنگام
نمایش
اثرانگشت
کلید را
مشخص
میکند.
گزینههای
معتبر
عبارتند از:
md5وsha256(پیشفرض). ForkAfterAuthentication- از
sshدرخواست میکند که دقیقاً پیش از اجرای دستور به پسزمینه برود. این در صورتی مفید است کهsshبخواهد گذرواژهها یا عبارتهای عبور را بپرسد، اما کاربر بخواهد که در پسزمینه اجرا شود. این به منزله تنظیم گزینهٔ پیکربندیStdinNullروی “yes” است. روش توصیهشده برای راهاندازی برنامههای X11 در یک سایت راه دور، دستوری شبیه بهssh -f host xtermاست، که در صورت تنظیم گزینهٔ پیکربندیForkAfterAuthenticationروی “yes ،” همانندssh host xtermخواهد بود.اگر گزینهٔ پیکربندی
ExitOnForwardFailureروی “yes” تنظیم شده باشد، کلاینتی که با تنظیم گزینهٔForkAfterAuthenticationروی “yes” شروع به کار کرده است، پیش از رفتن به پسزمینه منتظر میماند تا تمام بازارسالهای پورت راه دور با موفقیت برقرار شوند. آرگومان این کلیدواژه بایدyes(مشابه با گزینهٔ-f) یاno(پیشفرض) باشد. ForwardAgent- مشخص
میکند که
آیا اتصال
به کارگزار
احراز هویت
(در صورت
وجود) به
ماشین راه
دور
بازارسال
شود یا خیر.
آرگومان
میتواند
yes ،no(پیشفرض)، یک مسیر صریح به سوکت کارگزار، یا نام یک متغیر محیطی (که با ‘$’ شروع میشود) باشد که مسیر در آن قرار دارد.بازارسال کارگزار باید با احتیاط فعال شود. کاربرانی که توانایی دور زدن مجوزهای پرونده را در میزبان راه دور دارند (برای سوکت دامنه یونیکسِ کارگزار) میتوانند از طریق اتصال بازارسالشده به کارگزار محلی دسترسی پیدا کنند. یک مهاجم نمیتواند دادههای کلید را از کارگزار به دست آورد، اما میتواند عملیاتی را روی کلیدها انجام دهد که به وی امکان میدهد با استفاده از هویتهای بارگیریشده در کارگزار احراز هویت کند.
ForwardX11- مشخص
میکند که
آیا
اتصالات X11
به طور
خودکار از
طریق کانال
امن هدایت
شوند و
DISPLAYتنظیم شود یا خیر. آرگومان بایدyesیاno(پیشفرض) باشد.بازارسال X11 باید با احتیاط فعال شود. کاربرانی که توانایی دور زدن مجوزهای پرونده را در میزبان راه دور دارند (برای پایگاه داده مجوزهای X11 کاربر) میتوانند از طریق اتصال بازارسالشده به نمایشگر محلی X11 دسترسی پیدا کنند. در این صورت، اگر گزینهٔ
ForwardX11Trustedنیز فعال باشد، یک مهاجم ممکن است بتواند فعالیتهایی مانند پایش ضربات کلید (keystroke monitoring) را انجام دهد. ForwardX11Timeout- یک مهلت
زمانی برای
بازارسال
غیرقابلاعتماد
X11 با
استفاده از
قالب شرح
دادهشده
در بخش
قالبهای
زمانی (TIME FORMATS)
از
sshd_config(5)
مشخص
میکند.
اتصالات X11
که پس از
این زمان
توسط
ssh(1)
دریافت
شوند، رد
خواهند شد.
تنظیم
ForwardX11Timeoutروی صفر، مهلت زمانی را غیرفعال کرده و اجازه بازارسال X11 را برای طول مدت اتصال میدهد. پیشفرض این است که بازارسال غیرقابلاعتماد X11 پس از سپری شدن بیست دقیقه غیرفعال شود. ForwardX11Trusted- اگر این
گزینه روی
yesتنظیم شود، کلاینتهای راه دور X11 دسترسی کامل به نمایشگر اصلی X11 خواهند داشت.اگر این گزینه روی
no(پیشفرض) تنظیم شود، کلاینتهای راه دور X11 غیرقابلاعتماد در نظر گرفته شده و از سرقت یا دستکاری دادههای متعلق به کلاینتهای قابلاعتماد X11 منع میشوند. علاوه بر این، توکن xauth(1) مورد استفاده برای نشست به گونهای تنظیم میشود که پس از ۲۰ دقیقه منقضی شود. پس از این زمان، از دسترسی کلاینتهای راه دور جلوگیری به عمل خواهد آمد.برای جزئیات کامل درباره محدودیتهای اعمالشده بر کلاینتهای غیرقابلاعتماد، به مشخصات افزونهٔ X11 SECURITY مراجعه کنید.
GatewayPorts- مشخص
میکند که
آیا
میزبانهای
راه دور
مجاز به
اتصال به
پورتهای
بازارسالشدهٔ
محلی هستند
یا خیر. به
طور
پیشفرض،
ssh(1)
بازارسالهای
پورت محلی
را به نشانی
loopback متصل
میکند. این
امر مانع از
اتصال سایر
میزبانهای
راه دور به
پورتهای
بازارسالشده
میشود.
GatewayPortsمیتواند برای تعیین این موضوع استفاده شود که ssh باید بازارسالهای پورت محلی را به نشانی عمومی (wildcard) متصل کند، و بدین ترتیب به میزبانهای راه دور امکان اتصال به پورتهای بازارسالشده را بدهد. آرگومان بایدyesیاno(پیشفرض) باشد. GlobalKnownHostsFile- یک یا چند پرونده را برای استفاده به عنوان پایگاه داده کلیدهای میزبان سراسری، با تفکیک توسط فاصله خالی مشخص میکند. پیشفرض عبارت است از /etc/ssh/ssh_known_hosts, /etc/ssh/ssh_known_hosts2.
GSSAPIAuthentication- مشخص
میکند که
آیا احراز
هویت کاربر
بر پایهٔ GSSAPI
مجاز است یا
خیر.
پیشفرض
noاست. GSSAPIDelegateCredentials- اعتبارنامهها
را به سرور
بازارسال
(تفویض)
میکند.
پیشفرض
noاست. HashKnownHosts- نشان
میدهد که
ssh(1)
هنگام
افزودن
نامها و
نشانیهای
میزبان به
~/.ssh/known_hosts
باید آنها
را
درهمسازی
(هش) کند. این
نامهای
درهمسازیشده
میتوانند
به طور عادی
توسط
ssh(1) و
sshd(8)
استفاده
شوند، اما
در صورت
افشای
محتوای
پرونده،
اطلاعات
هویتی را به
صورت بصری
فاش
نمیکنند.
پیشفرض
noاست. توجه داشته باشید که نامها و نشانیهای موجود در پروندههای میزبانهای شناختهشده به طور خودکار تبدیل نمیشوند، اما میتوان آنها را به طور دستی با استفاده از ssh-keygen(1) درهمسازی کرد. 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
گزینهٔ
-Qدر ssh(1) میتواند برای فهرست کردن الگوریتمهای امضای پشتیبانیشده استفاده شود. این گزینه پیشتر HostbasedKeyTypes نامیده میشد. HostbasedAuthentication- مشخص
میکند که
آیا احراز
هویت مبتنی
بر rhosts همراه
با احراز
هویت با
کلید عمومی
امتحان شود
یا خیر.
آرگومان
باید
yesیاno(پیشفرض) باشد. 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-ecdsa-sha2-nistp256@openssh.com, webauthn-sk-ecdsa-sha2-nistp256@openssh.com sk-ssh-ed25519@openssh.com, rsa-sha2-512,rsa-sha2-256, ssh-mldsa44-ed25519@openssh.com
اگر کلیدهای میزبان برای میزبان مقصد شناختهشده باشند، این پیشفرض اصلاح میشود تا الگوریتمهای آنها را ترجیح دهد.
فهرست الگوریتمهای امضای موجود را میتوان با استفاده از "ssh -Q HostKeyAlgorithms" نیز به دست آورد.
HostKeyAlias- نام مستعاری را مشخص میکند که باید به جای نام واقعی میزبان هنگام جستجو یا ذخیره کلید میزبان در پروندههای پایگاه داده کلید میزبان و هنگام اعتبارسنجی گواهیهای میزبان استفاده شود. این گزینه برای ایجاد تونل اتصالات SSH یا برای سرورهای متعددی که روی یک میزبان واحد اجرا میشوند مفید است.
Hostname- نام واقعی
میزبانی را
که باید به
آن وارد شد
مشخص
میکند. این
گزینه
میتواند
برای تعیین
نامهای
مستعار یا
کوتهنوشتها
برای
میزبانها
به کار رود.
آرگومانهای
Hostnameتوکنهای شرح دادهشده در بخش توکنها (TOKENS) را میپذیرند. نشانیهای IP عددی نیز مجاز هستند (هم در خط فرمان و هم در مشخصاتHostname). پیشفرض نامی است که در خط فرمان داده شده است. IdentitiesOnly- مشخص
میکند که
ssh(1)
تنها باید
از
پروندههای
هویت احراز
هویت و
گواهی
پیکربندیشده
استفاده
کند (یا
پروندههای
پیشفرض،
یا مواردی
که صراحتاً
در
پروندههای
ssh_configپیکربندی شدهاند یا در خط فرمان ssh(1) ارسال شدهاند)، حتی اگر ssh-agent(1) یا یکPKCS11ProviderیاSecurityKeyProviderهویتهای بیشتری ارائه دهد. آرگومان این کلیدواژه بایدyesیاno(پیشفرض) باشد. این گزینه برای شرایطی در نظر گرفته شده است که ssh-agent هویتهای بسیار متفاوتی را ارائه میدهد. IdentityAgent- سوکت
دامنهٔ
UNIX مورد
استفاده
برای
ارتباط با
کارگزار
احراز هویت
را مشخص
میکند.
این گزینه متغیر محیطی
SSH_AUTH_SOCKرا رونویسی میکند و میتواند برای انتخاب یک کارگزار خاص استفاده شود. تنظیم نام سوکت رویnoneاستفاده از کارگزار احراز هویت را غیرفعال میکند. اگر رشتهٔ "SSH_AUTH_SOCK" مشخص شود، مکان سوکت از متغیر محیطیSSH_AUTH_SOCKخوانده خواهد شد. در غیر این صورت، اگر مقدار مشخصشده با یک نویسهٔ ‘$’ آغاز شود، به عنوان یک متغیر محیطیِ حاوی مکان سوکت در نظر گرفته خواهد شد.آرگومانهای
IdentityAgentمیتوانند از نحو تیلدا برای ارجاع به دایرکتوری خانگی کاربر، توکنهای شرح دادهشده در بخش توکنها (TOKENS) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کنند. IdentityFile- پروندهای
را مشخص
میکند که
هویت احراز
هویت ECDSA، ECDSA
میزبانیشده
در احراز
هویتکننده،
Ed25519، Ed25519
میزبانیشده
در احراز
هویتکننده،
یا RSA کاربر
از آن
خوانده
میشود.
همچنین در
صورتی که
پرونده
کلید خصوصی
به صورت
محلی وجود
نداشته
باشد،
میتوانید
یک پرونده
کلید عمومی
را مشخص
کنید تا از
کلید خصوصی
متناظری که
در ssh-agent(1)
بارگیری
شده است
استفاده
شود.
پیشفرض
عبارت است
از ~/.ssh/id_rsa,
~/.ssh/id_ecdsa,
~/.ssh/id_ecdsa_sk,
~/.ssh/id_ed25519,
~/.ssh/id_ed25519_sk و
~/.ssh/id_mldsa44_ed25519.
علاوه بر
این، هر
هویتی که
توسط
کارگزار
احراز هویت
ارائه شود
برای احراز
هویت
استفاده
خواهد شد،
مگر اینکه
IdentitiesOnlyتنظیم شده باشد. اگر هیچ گواهیای به طور صریح توسطCertificateFileمشخص نشده باشد، ssh(1) تلاش خواهد کرد اطلاعات گواهی را از نام پروندهای بارگیری کند که با افزودن -cert.pub به مسیر یکIdentityFileمشخصشده به دست میآید.آرگومانهای
IdentityFileمیتوانند از نحو تیلدا برای ارجاع به دایرکتوری خانگی کاربر یا توکنهای شرح دادهشده در بخش توکنها (TOKENS) استفاده کنند. همچنین آرگومانnoneمیتواند برای نشان دادن اینکه هیچ پرونده هویتی نباید بارگیری شود استفاده شود.امکان تعیین چندین پرونده هویت در پروندههای پیکربندی وجود دارد؛ تمام این هویتها به ترتیب آزمایش خواهند شد. چندین دستورالعمل
IdentityFileبه فهرست هویتهای مورد آزمایش افزوده میشوند (این رفتار با سایر دستورالعملهای پیکربندی متفاوت است).IdentityFileمیتواند در ترکیب باIdentitiesOnlyاستفاده شود تا تعیین کند کدام هویتها در یک کارگزار در طول احراز هویت ارائه شوند.IdentityFileهمچنین میتواند در ترکیب باCertificateFileاستفاده شود تا هر گواهی مورد نیاز دیگری را نیز برای احراز هویت با آن هویت ارائه دهد. IgnoreUnknown- فهرستی
الگویی از
گزینههای
ناشناخته
را مشخص
میکند که
در صورت
مواجهه در
زمان تجزیه
پیکربندی
باید
نادیده
گرفته شوند.
این گزینه
میتواند
برای
جلوگیری از
بروز خطا در
صورتی که
ssh_configحاوی گزینههایی باشد که توسط ssh(1) شناخته نمیشوند، استفاده شود. توصیه میشود کهIgnoreUnknownدر اوایل پرونده پیکربندی قرار گیرد، زیرا روی گزینههای ناشناختهای که پیش از آن ظاهر میشوند اعمال نخواهد شد. 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- مشخص
میکند که
آیا از
احراز هویت
تعاملی
صفحهکلید
(keyboard-interactive)
استفاده
شود یا خیر.
آرگومان
این
کلیدواژه
باید
yes(پیشفرض) یاnoباشد.ChallengeResponseAuthenticationیک نام مستعار منسوخ برای این گزینه است. KbdInteractiveDevices- فهرست
روشهای
مورد
استفاده در
احراز هویت
تعاملی
صفحهکلید
را مشخص
میکند.
چندین نام
روش باید با
کاما جدا
شوند.
پیشفرض
استفاده از
فهرست
مشخصشده
توسط سرور
است.
روشهای
موجود بسته
به آنچه
سرور
پشتیبانی
میکند
متفاوت است.
برای یک
سرور OpenSSH، این
مقدار ممکن
است صفر یا
چند مورد از
bsdauthوpamباشد. KexAlgorithms- الگوریتمهای
مجاز KEX
(تبادل
کلید) و
ترتیب
اولویت
آنها را
مشخص
میکند.
الگوریتم
انتخابشده،
نخستین
الگوریتم
در این
فهرست
خواهد بود
که سرور نیز
از آن
پشتیبانی
میکند.
چندین
الگوریتم
باید با
کاما جدا
شوند.
اگر فهرست مشخصشده با یک نویسهٔ ‘+’ آغاز شود، الگوریتمهای مشخصشده به جای جایگزینی، به مجموعه پیشفرض افزوده خواهند شد. اگر فهرست مشخصشده با یک نویسهٔ ‘-’ آغاز شود، الگوریتمهای مشخصشده (شامل نویسههای عمومی) به جای جایگزینی، از مجموعه پیشفرض حذف خواهند شد. اگر فهرست مشخصشده با یک نویسهٔ ‘^’ آغاز شود، الگوریتمهای مشخصشده در ابتدای مجموعه پیشفرض قرار خواهند گرفت.
پیشفرض عبارت است از:
mlkem768x25519-sha256, sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com, curve25519-sha256,curve25519-sha256@libssh.org, ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256
فهرست الگوریتمهای تبادل کلید پشتیبانیشده را میتوان با استفاده از "ssh -Q kex" نیز به دست آورد.
KnownHostsCommand- دستوری را
برای به دست
آوردن
فهرستی از
کلیدهای
میزبان،
علاوه بر
موارد
فهرستشده
در
UserKnownHostsFileوGlobalKnownHostsFileمشخص میکند. این دستور پس از خوانده شدن پروندهها اجرا میشود. این دستور میتواند سطرهای کلید میزبان را دقیقاً با همان قالب پروندههای معمولی (شرح دادهشده در بخش اعتبارسنجی کلیدهای میزبان (VERIFYING HOST KEYS) در ssh(1)) در خروجی استاندارد بنویسد. آرگومانهایKnownHostsCommandتوکنهای شرح دادهشده در بخش توکنها (TOKENS) را میپذیرند. دستور ممکن است چندین بار در هر اتصال فراخوانی شود: یک بار هنگام آمادهسازی فهرست اولویت الگوریتمهای کلید میزبان، بار دیگر برای به دست آوردن کلید میزبان برای نام میزبان درخواستشده، و اگرCheckHostIPفعال باشد، یک بار دیگر برای به دست آوردن کلید میزبان منطبق با نشانی سرور. اگر دستور به طور غیرعادی خارج شود یا یک وضعیت خروج غیرصفر برگرداند، اتصال خاتمه مییابد. LocalCommand- دستوری را
برای اجرا
در ماشین
محلی پس از
اتصال
موفقیتآمیز
به سرور
مشخص
میکند.
رشتهٔ
دستور تا
انتهای سطر
ادامه دارد
و در پوستهٔ
کاربر اجرا
میشود.
آرگومانهای
LocalCommandتوکنهای شرح دادهشده در بخش توکنها (TOKENS) را میپذیرند.دستور به صورت همگام (synchronous) اجرا میشود و به نشست ssh(1) که آن را ایجاد کرده است دسترسی ندارد. این گزینه نباید برای دستورات تعاملی استفاده شود.
این دستورالعمل نادیده گرفته میشود مگر اینکه
PermitLocalCommandفعال شده باشد. LocalForward- مشخص
میکند که
یک پورت TCP یا
سوکت دامنه
یونیکس در
ماشین محلی
از طریق
کانال امن
به میزبان و
پورت
مشخصشده
(یا سوکت
دامنه
یونیکس) از
طریق ماشین
راه دور
بازارسال
شود. برای
یک پورت TCP،
نخستین
آرگومان
باید به شکل
[bind_address:]port
یا یک مسیر
سوکت دامنه
یونیکس
باشد. دومین
آرگومان،
مقصد است و
میتواند
host:hostport یا
در صورتی که
میزبان راه
دور
پشتیبانی
کند، یک
مسیر سوکت
دامنه
یونیکس
باشد.
نشانیهای IPv6 را میتوان با قرار دادن در قلابها مشخص کرد.
اگر هر یک از آرگومانها حاوی نویسهٔ '/' باشد، آن آرگومان به عنوان یک سوکت دامنه یونیکس (روی میزبان متناظر) به جای یک پورت TCP تفسیر میشود.
میتوان چندین بازارسال را مشخص کرد و بازارسالهای اضافی را میتوان در خط فرمان ارائه داد. تنها مدیر سیستم میتواند پورتهای ممتاز را بازارسال کند. به طور پیشفرض، پورت محلی مطابق با تنظیمات
GatewayPortsمتصل میشود. با این حال، میتوان از یک bind_address صریح برای اتصال به یک نشانی خاص استفاده کرد. یک bind_address با مقدارlocalhostنشان میدهد که پورت گوشدهنده تنها برای استفاده محلی متصل شود، در حالی که یک نشانی خالی یا ‘*’ نشان میدهد که پورت باید از تمام رابطها در دسترس باشد. مسیرهای سوکت دامنه یونیکس میتوانند از توکنهای شرح دادهشده در بخش توکنها (TOKENS) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کنند. LogLevel- سطح جزئیات لاگ را هنگام ثبت پیامها از ssh(1) تعیین میکند. مقادیر ممکن عبارتند از: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, و DEBUG3. پیشفرض INFO است. DEBUG و DEBUG1 معادل هستند. DEBUG2 و DEBUG3 هر کدام سطوح بالاتری از خروجی پرجزئیات را مشخص میکنند.
LogVerbose- یک یا چند
بازنویسی
(override) برای LogLevel
مشخص
میکند. یک
بازنویسی
شامل یک یا
چند فهرست
الگویی است
که با
پرونده
مبدأ، تابع
و شماره سطر
مطابقت
داده
میشود تا
ثبت
پرجزئیات
را برای
آنها
اجباری کند.
برای مثال،
یک الگوی
بازنویسی
به شکل:
kex.c:*:1000,*:kex_exchange_identification():*,packet.c:*
ثبت پرجزئیات را برای سطر ۱۰۰۰ از پروندهٔ kex.c ، همه موارد درون تابع
kex_exchange_identification() و تمام کدهای درون پروندهٔ packet.c فعال میکند. این گزینه برای عیبیابی در نظر گرفته شده است و به طور پیشفرض هیچ بازنویسیای فعال نیست. MACs- الگوریتمهای
MAC (کد
اصالتسنجی
پیام) را به
ترتیب
اولویت
مشخص
میکند.
الگوریتم MAC
برای
محافظت از
یکپارچگی
دادهها
استفاده
میشود.
چندین
الگوریتم
باید با
کاما جدا
شوند. اگر
فهرست
مشخصشده
با یک
نویسهٔ ‘+’
آغاز شود،
الگوریتمهای
مشخصشده
به جای
جایگزینی،
به مجموعه
پیشفرض
افزوده
خواهند شد.
اگر فهرست
مشخصشده
با یک
نویسهٔ ‘-’
آغاز شود،
الگوریتمهای
مشخصشده
(شامل
نویسههای
عمومی) به
جای
جایگزینی،
از مجموعه
پیشفرض
حذف خواهند
شد. اگر
فهرست
مشخصشده
با یک
نویسهٔ ‘^’
آغاز شود،
الگوریتمهای
مشخصشده
در ابتدای
مجموعه
پیشفرض
قرار
خواهند
گرفت.
الگوریتمهایی که حاوی "-etm" هستند، MAC را پس از رمزگذاری محاسبه میکنند (encrypt-then-mac). این الگوریتمها امنتر در نظر گرفته میشوند و استفاده از آنها توصیه میشود.
پیشفرض عبارت است از:
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" نیز به دست آورد.
NoHostAuthenticationForLocalhost- احراز هویت
میزبان را
برای localhost
(نشانیهای
loopback) غیرفعال
میکند.
آرگومان
این
کلیدواژه
باید
yesیاno(پیشفرض) باشد. NumberOfPasswordPrompts- تعداد دفعات درخواست گذرواژه پیش از انصراف را مشخص میکند. آرگومان این کلیدواژه باید یک عدد صحیح باشد. پیشفرض 3 است.
ObscureKeystrokeTiming- مشخص
میکند که
آیا ssh(1)
باید تلاش
کند تا
زمانبندی
میان ضربات
کلید را از
ناظران
غیرفعال
ترافیک
شبکه مبهم
سازد یا
خیر. در
صورت فعال
بودن، برای
نشستهای
تعاملی،
ssh(1)
ضربات کلید
را در فواصل
ثابت چند ده
میلیثانیهای
ارسال
میکند و
برای مدتی
پس از متوقف
شدن تایپ،
بستههای
ضربه کلید
جعلی ارسال
خواهد کرد.
آرگومان
این
کلیدواژه
باید
yes ،noیا یک مشخصکننده بازه به شکلinterval:milliseconds(مثلاًinterval:80برای ۸۰ میلیثانیه) باشد. پیشفرض مبهمسازی ضربات کلید با استفاده از بازه بستهٔ ۲۰ میلیثانیهای است. توجه داشته باشید که بازههای کوچکتر منجر به نرخ بالاتر بستههای ضربه کلید جعلی خواهد شد. PasswordAuthentication- مشخص
میکند که
آیا از
احراز هویت
با گذرواژه
استفاده
شود یا خیر.
آرگومان
این
کلیدواژه
باید
yes(پیشفرض) یاnoباشد. PermitLocalCommand- اجازه
اجرای
دستور محلی
را از طریق
گزینهٔ
LocalCommandیا با استفاده از دنبالهٔ گریز!command در ssh(1) میدهد. آرگومان بایدyesیاno(پیشفرض) باشد. PermitRemoteOpen- مقصدهایی
را مشخص
میکند که
بازارسال
راه دور
پورت TCP به
آنها مجاز
است هنگامی
که
RemoteForwardبه عنوان پروکسی SOCKS استفاده میشود. مشخصات بازارسال باید یکی از قالبهای زیر باشد:PermitRemoteOpenhost:portPermitRemoteOpenIPv4_addr:portPermitRemoteOpen[IPv6_addr]:port
میتوان چندین بازارسال را با جدا کردن آنها با فاصله خالی مشخص کرد. یک آرگومان
anyمیتواند برای حذف تمام محدودیتها و مجاز کردن هرگونه درخواست بازارسال استفاده شود. یک آرگومانnoneمیتواند برای ممنوع کردن تمامی درخواستهای بازارسال به کار رود. نویسهٔ عمومی ‘*’ میتواند برای میزبان یا پورت استفاده شود تا به ترتیب به تمام میزبانها یا تمام پورتها اجازه داده شود. در غیر این صورت، هیچ تطابق الگویی یا جستجوی نشانی روی نامهای ارائهشده انجام نمیشود. PKCS11Provider- ارائهدهندهٔ
PKCS#11 مورد
استفاده یا
noneرا برای نشان دادن عدم استفاده از هیچ ارائهدهندهای (پیشفرض) مشخص میکند. آرگومان این کلیدواژه مسیری به کتابخانه مشترک PKCS#11 است که ssh(1) باید از آن برای ارتباط با توکن PKCS#11 فراهمکننده کلیدها جهت احراز هویت کاربر استفاده کند. Port- شماره پورت برای اتصال در میزبان راه دور را مشخص میکند. پیشفرض 22 است.
PreferredAuthentications- ترتیبی را
مشخص
میکند که
کلاینت
باید
روشهای
احراز هویت
را آزمایش
کند. این به
کلاینت
امکان
میدهد یک
روش (مانند
keyboard-interactive) را بر روش دیگری (مانندpassword) ترجیح دهد. پیشفرض عبارت است از:gssapi-with-mic,hostbased,publickey, keyboard-interactive,password
ProxyCommand- دستوری را
برای
استفاده
جهت اتصال
به سرور
مشخص
میکند.
رشتهٔ
دستور تا
انتهای سطر
ادامه
دارد، و با
استفاده از
دستورالعمل
‘
exec’ پوستهٔ کاربر اجرا میشود تا از باقی ماندن فرآیند پوسته جلوگیری شود.آرگومانهای
ProxyCommandتوکنهای شرح دادهشده در بخش توکنها (TOKENS) را میپذیرند. این دستور اساساً میتواند هر چیزی باشد، و باید از ورودی استاندارد خود بخواند و در خروجی استاندارد خود بنویسد. این دستور در نهایت باید به یک سرور sshd(8) در حال اجرا روی ماشینی متصل شود، یا دستورsshd -iرا در جایی اجرا کند. مدیریت کلید میزبان با استفاده ازHostnameمیزبانی که به آن متصل میشود انجام خواهد شد (پیشفرض نامی است که توسط کاربر تایپ شده است). تنظیم دستور رویnoneاین گزینه را به طور کامل غیرفعال میکند. توجه داشته باشید کهCheckHostIPبرای اتصالاتی که با دستور پروکسی انجام میشوند در دسترس نیست.این دستورالعمل در ترکیب با nc(1) و پشتیبانی آن از پروکسی مفید است. برای مثال، دستورالعمل زیر از طریق یک پروکسی HTTP در نشانی 192.0.2.0 متصل میشود:
ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p
ProxyJump- یک یا چند
پروکسی پرش
(jump proxy) را به
صورت
[user@]host[:port]
یا یک URI
اساساچ
مشخص
میکند.
چندین
پروکسی
میتوانند
با
نویسههای
کاما از هم
جدا شوند و
به صورت
متوالی
پیموده
خواهند شد.
تنظیم این
گزینه باعث
میشود
ssh(1)
ابتدا با
برقراری یک
اتصال
ssh(1) به
میزبان
مشخصشدهٔ
ProxyJumpو سپس برقراری یک بازارسال TCP به مقصد نهایی از آنجا، به میزبان هدف متصل شود. تنظیم میزبان رویnoneاین گزینه را به طور کامل غیرفعال میکند.توجه داشته باشید که این گزینه با گزینهٔ
ProxyCommandرقابت خواهد کرد؛ هر کدام که زودتر مشخص شود از اعمال نمونههای بعدی گزینهٔ دیگر جلوگیری میکند.همچنین توجه داشته باشید که پیکربندی مربوط به میزبان مقصد (خواه از طریق خط فرمان یا پرونده پیکربندی ارائه شده باشد) عموماً روی میزبانهای پرش اعمال نمیشود. در صورتی که پیکربندی خاصی برای میزبانهای پرش لازم باشد، باید از ~/.ssh/config استفاده شود.
ProxyUseFdpass- مشخص
میکند که
ProxyCommandیک توصیفگر پروندهٔ متصل را به ssh(1) بازگرداند، به جای اینکه به اجرای خود ادامه داده و دادهها را عبور دهد. پیشفرضnoاست. 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" نیز به دست آورد.
PubkeyAuthentication- مشخص
میکند که
آیا احراز
هویت با
کلید عمومی
امتحان شود
یا خیر.
آرگومان
این
کلیدواژه
باید
yes(پیشفرض)،no ،unboundیاhost-boundباشد. دو گزینهٔ پایانی، احراز هویت با کلید عمومی را فعال میکنند در حالی که به ترتیب افزونهٔ پروتکل احراز هویت مقید به میزبان (host-bound) در OpenSSH را که برای بازارسال محدودشدهٔ ssh-agent(1) لازم است، غیرفعال یا فعال میسازند. RefuseConnection- اجازه
میدهد تا
یک اتصال
توسط
پرونده
پیکربندی
رد شود. اگر
این گزینه
مشخص شود،
ssh(1)
بلافاصله
پیش از تلاش
برای اتصال
به میزبان
راه دور
خاتمه
مییابد،
یک پیام خطا
شامل
آرگومان
این
کلیدواژه
را نمایش
میدهد و یک
وضعیت خروج
غیرصفر
بازمیگرداند.
این گزینه
ممکن است
برای
یادآوری یا
هشدار به
کاربر از
طریق
ssh_configمفید باشد. RekeyLimit- حداکثر حجم
دادهای را
که ممکن است
پیش از
مذاکره
مجدد کلید
نشست ارسال
یا دریافت
شود، مشخص
میکند، که
میتواند
به صورت
اختیاری با
حداکثر مدت
زمانی که
ممکن است
پیش از
مذاکره
مجدد کلید
سپری شود
دنبال گردد.
نخستین
آرگومان بر
حسب بایت
مشخص
میشود و
ممکن است
پسوندی از
‘K ،’ ‘M’ یا
‘G’ داشته
باشد تا به
ترتیب
کیلوبایت،
مگابایت یا
گیگابایت
را نشان
دهد.
پیشفرض
بین ‘1G’ و ‘4G’
بسته به نوع
رمز است.
دومین
مقدار
اختیاری بر
حسب ثانیه
مشخص
میشود و
میتواند
از هر یک از
واحدهای
مستندشده
در بخش TIME FORMATS از
sshd_config(5)
استفاده
کند. مقدار
پیشفرض
برای
RekeyLimitبرابرdefault noneاست، به این معنی که کلیدگذاری مجدد پس از ارسال یا دریافت مقدار پیشفرض دادهٔ مربوط به آن رمز انجام میشود و هیچ کلیدگذاری مجدد مبتنی بر زمان صورت نمیگیرد. RemoteCommand- دستوری را
برای اجرا
روی ماشین
راه دور پس
از اتصال
موفق به
سرور مشخص
میکند.
رشتهٔ
دستور تا
انتهای سطر
ادامه دارد
و با پوستهٔ
کاربر اجرا
میشود.
آرگومانهای
RemoteCommandتوکنهای شرح دادهشده در بخش توکنها (TOKENS) را میپذیرند. RemoteForward- مشخص
میکند که
یک پورت TCP یا
سوکت دامنه
یونیکس در
ماشین راه
دور از طریق
کانال امن
بازارسال
شود. پورت
راه دور
میتواند
به یک
میزبان و
پورت
مشخصشده
یا سوکت
دامنه
یونیکس از
ماشین محلی
بازارسال
شود، یا
میتواند
به عنوان یک
پروکسی SOCKS 4/5
عمل کند که
به یک
کلاینت راه
دور اجازه
میدهد به
مقاصد
دلخواه از
ماشین محلی
متصل شود.
نخستین
آرگومان
مشخصات گوش
دادن است و
میتواند
به شکل
[bind_address:]port
یا در صورتی
که میزبان
راه دور
پشتیبانی
کند، یک
مسیر سوکت
دامنه
یونیکس
باشد. اگر
بازارسال
به یک مقصد
مشخص انجام
شود،
آرگومان
دوم باید
host:hostport یا
یک مسیر
سوکت دامنه
یونیکس
باشد، در
غیر این
صورت اگر
هیچ
آرگومان
مقصدی مشخص
نشود،
بازارسال
راه دور به
عنوان یک
پروکسی SOCKS
برقرار
خواهد شد.
هنگامی که
به عنوان یک
پروکسی SOCKS
عمل
میکند،
مقصد اتصال
میتواند
توسط
PermitRemoteOpenمحدود شود.نشانیهای IPv6 را میتوان با قرار دادن نشانیها در قلابها مشخص کرد.
اگر هر یک از آرگومانها حاوی نویسهٔ '/' باشد، آن آرگومان به عنوان یک سوکت دامنه یونیکس (روی میزبان متناظر) به جای یک پورت TCP تفسیر میشود.
میتوان چندین بازارسال را مشخص کرد و بازارسالهای اضافی را میتوان در خط فرمان ارائه داد. پورتهای ممتاز را تنها زمانی میتوان بازارسال کرد که به عنوان کاربر ریشه (root) در ماشین راه دور وارد شده باشید. مسیرهای سوکت دامنه یونیکس میتوانند از توکنهای شرح دادهشده در بخش توکنها (TOKENS) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کنند.
اگر آرگومان port برابر 0 باشد، پورت گوشدهنده به طور پویا روی سرور تخصیص داده شده و در زمان اجرا به کلاینت گزارش میشود.
اگر bind_address مشخص نشده باشد، پیشفرض اتصال صرفاً به نشانیهای loopback است. اگر bind_address برابر ‘
*’ یا یک رشتهٔ خالی باشد، آنگاه درخواست میشود که بازارسال روی تمام رابطها گوش فرا دهد. مشخص کردن یک bind_address راه دور تنها در صورتی موفقیتآمیز خواهد بود که گزینهٔGatewayPortsسرور فعال باشد (به sshd_config(5) مراجعه کنید). RequestTTY- مشخص
میکند که
آیا یک
شبهترمینال
(pseudo-tty) برای
نشست
درخواست
شود یا خیر.
آرگومان
میتواند
یکی از
موارد زیر
باشد:
no(هرگز TTY درخواست نشود)،yes(همیشه وقتی ورودی استاندارد یک TTY است درخواست شود)،force(همیشه TTY درخواست شود) یاauto(هنگام باز کردن یک نشست ورود به سیستم درخواست شود). این گزینه آینهای از پرچمهای-tو-Tدر ssh(1) است. RequiredRSASize- حداقل
اندازه
کلید RSA (بر
حسب بیت) را
که ssh(1)
خواهد
پذیرفت،
مشخص
میکند.
کلیدهای
احراز هویت
کاربر که
کوچکتر از
این حد
باشند
نادیده
گرفته
خواهند شد.
سرورهایی
که کلیدهای
میزبانی
کوچکتر از
این حد
ارائه
دهند، باعث
خاتمه
یافتن
اتصال
میشوند.
پیشفرض
1024بیت است. توجه داشته باشید که این حد تنها میتواند نسبت به مقدار پیشفرض افزایش یابد. RevokedHostKeys- کلیدهای
عمومی
لغوشدهٔ
میزبان را
مشخص
میکند.
کلیدهای
فهرستشده
در این
پرونده
برای احراز
هویت
میزبان رد
خواهند شد.
توجه داشته
باشید که
اگر این
پرونده
وجود
نداشته
باشد یا
قابل
خواندن
نباشد،
احراز هویت
میزبان
برای تمامی
میزبانها
رد خواهد
شد. کلیدها
را میتوان
به صورت یک
پرونده
متنی با درج
یک کلید
عمومی در هر
سطر، یا به
صورت یک
فهرست
ابطال کلید
(KRL) مربوط به OpenSSH
همانطور
که توسط
ssh-keygen(1)
تولید
میشود،
مشخص کرد.
برای
اطلاعات
بیشتر
درباره
KRLها، به بخش KEY
REVOCATION LISTS در
ssh-keygen(1)
مراجعه
کنید.
آرگومانهای
RevokedHostKeysمیتوانند از نحو تیلدا برای ارجاع به دایرکتوری خانگی کاربر، توکنهای شرح دادهشده در بخش توکنها (TOKENS) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کنند. SecurityKeyProvider- مسیری را به
کتابخانهای
مشخص
میکند که
هنگام
بارگیری
هرگونه
کلید
میزبانیشده
در احراز
هویتکنندهٔ
FIDO استفاده
خواهد شد، و
پشتیبانی
توکار USB HID را
رونویسی
میکند.
اگر مقدار مشخصشده با یک نویسهٔ ‘$’ آغاز شود، به عنوان یک متغیر محیطیِ حاوی مسیر کتابخانه در نظر گرفته خواهد شد.
SendEnv- مشخص
میکند که
چه
متغیرهایی
از environ(7)
محلی باید
به سرور
ارسال شوند.
سرور نیز
باید از آن
پشتیبانی
کند و برای
پذیرش این
متغیرهای
محیطی
پیکربندی
شده باشد.
توجه داشته
باشید که هر
زمان که یک
شبهترمینال
درخواست
شود، متغیر
محیطی
TERMهمیشه ارسال میشود، زیرا پروتکل به آن نیاز دارد. برای چگونگی پیکربندی سرور، بهAcceptEnvدر sshd_config(5) مراجعه کنید. متغیرها با نام مشخص میشوند که میتوانند شامل نویسههای عمومی باشند. چندین متغیر محیطی میتوانند با فاصله خالی از هم جدا شوند یا در میان چندین دستورالعملSendEnvپراکنده باشند.برای اطلاعات بیشتر درباره الگوها به بخش الگوها (PATTERNS) مراجعه کنید.
پاک کردن نامهای متغیرهای
SendEnvاز پیش تنظیمشده با افزودن پیشوند - به الگوها امکانپذیر است. پیشفرض این است که هیچ متغیر محیطیای ارسال نشود. ServerAliveCountMax- تعداد
پیامهای
زنده بودن
سرور (server alive messages - به
زیر مراجعه
کنید) را
تعیین
میکند که
ممکن است
بدون اینکه
ssh(1) هیچ
پیامی از
سرور
دریافت
کند، ارسال
شوند. اگر
در حین
ارسال
پیامهای
زنده بودن
سرور به این
آستانه
برسد، ssh
ارتباط با
سرور را قطع
کرده و نشست
را خاتمه
میدهد.
توجه به این
نکته مهم
است که
استفاده از
پیامهای
زنده بودن
سرور با
TCPKeepAlive(در زیر) بسیار متفاوت است. پیامهای زنده بودن سرور از طریق کانال رمزگذاریشده ارسال میشوند و بنابراین قابل جعل نخواهند بود. گزینهٔ TCP keepalive فعالشده توسطTCPKeepAliveقابل جعل است. سازوکار زنده بودن سرور زمانی ارزشمند است که کلاینت یا سرور نیاز داشته باشند از عدم پاسخگویی یک اتصال آگاه شوند.مقدار پیشفرض 3 است. اگر برای مثال،
ServerAliveInterval(به زیر مراجعه کنید) روی ۱۵ تنظیم شده باشد وServerAliveCountMaxدر مقدار پیشفرض خود باقی بماند، در صورت عدم پاسخگویی سرور، ssh پس از تقریباً ۴۵ ثانیه اتصال را قطع خواهد کرد. ServerAliveInterval- یک بازه زمانی مهلت بر حسب ثانیه را تنظیم میکند که پس از آن در صورت عدم دریافت داده از سرور، ssh(1) پیامی را از طریق کانال رمزگذاریشده ارسال میکند تا پاسخی از سرور درخواست کند. پیشفرض 0 است که نشان میدهد این پیامها به سرور ارسال نخواهند شد.
SessionType- میتواند
برای
درخواست
فراخوانی
یک
زیرسیستم
در سیستم
راه دور، یا
برای
جلوگیری از
اجرای
هرگونه
دستور راه
دور به طور
کامل
استفاده
شود. حالت
دوم برای
صرفاً
بازارسال
پورتها
مفید است.
آرگومان
این
کلیدواژه
باید
none(مشابه گزینهٔ-N)-،subsystem(مشابه گزینهٔ-s) یاdefault(پوسته یا اجرای دستور) باشد. SetEnv- به طور
مستقیم یک
یا چند
متغیر
محیطی و
محتوای
آنها را
برای ارسال
به سرور به
شکل “NAME=VALUE”
مشخص
میکند.
مشابه
SendEnv ،به استثنای متغیرTERM ،سرور باید برای پذیرش متغیر محیطی آماده شده باشد.مقدار “VALUE” میتواند از توکنهای شرح دادهشده در بخش توکنها (TOKENS) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کند.
StdinNull- ورودی
استاندارد
(stdin) را از
/dev/null هدایت
میکند (در
واقع، از
خواندن از stdin
جلوگیری
میکند).
هنگامی که
sshدر پسزمینه اجرا میشود، یا باید از این گزینه یا از گزینهٔ معادل-nاستفاده کرد. آرگومان این کلیدواژه بایدyes(مشابه گزینهٔ-n) یاno(پیشفرض) باشد. StreamLocalBindMask- ماسک حالت
ایجاد
پرونده
اکتال (umask)
مورد
استفاده
هنگام
ایجاد یک
پرونده
سوکت دامنه
یونیکس
برای
بازارسال
پورت محلی
یا راه دور
را تنظیم
میکند. این
گزینه تنها
برای
بازارسال
پورت به یک
پرونده
سوکت دامنه
یونیکس
استفاده
میشود.
مقدار پیشفرض 0177 است که یک پرونده سوکت دامنه یونیکس ایجاد میکند که تنها توسط مالک قابل خواندن و نوشتن است. توجه داشته باشید که همه سیستمعاملها حالت پرونده را روی پروندههای سوکت دامنه یونیکس رعایت نمیکنند.
StreamLocalBindUnlink- مشخص
میکند که
آیا پرونده
سوکت دامنه
یونیکس
موجود برای
بازارسال
پورت محلی
یا راه دور،
پیش از
ایجاد
پرونده
جدید باید
حذف شود یا
خیر. اگر
پرونده
سوکت از پیش
وجود داشته
باشد و
StreamLocalBindUnlinkفعال نباشد،sshقادر به بازارسال پورت به پرونده سوکت دامنه یونیکس نخواهد بود. این گزینه تنها برای بازارسال پورت به یک پرونده سوکت دامنه یونیکس استفاده میشود.آرگومان باید
yesیاno(پیشفرض) باشد. StrictHostKeyChecking- اگر این
پرچم روی
yesتنظیم شود، ssh(1) هرگز به صورت خودکار کلیدهای میزبان را به پروندهٔ ~/.ssh/known_hosts اضافه نخواهد کرد و از اتصال به میزبانهایی که کلید میزبان آنها تغییر کرده است خودداری میکند. این گزینه حداکثر محافظت را در برابر حملات مرد میانی (MITM) فراهم میکند، هرچند زمانی که پروندهٔ /etc/ssh/ssh_known_hosts به خوبی نگهداری نشده باشد یا اتصالات به میزبانهای جدید به طور مکرر انجام شود، میتواند آزاردهنده باشد. این گزینه کاربر را مجبور میکند که تمام میزبانهای جدید را به صورت دستی اضافه کند.اگر این پرچم روی
accept-newتنظیم شود، آنگاه ssh به طور خودکار کلیدهای میزبان جدید را به پروندهٔ known_hosts کاربر اضافه میکند، اما اجازه اتصال به میزبانهایی با کلیدهای میزبان تغییریافته را نخواهد داد. اگر این پرچم رویnoیاoffتنظیم شود، ssh به طور خودکار کلیدهای میزبان جدید را به پروندههای میزبان شناختهشده کاربر اضافه میکند و با رعایت برخی محدودیتها اجازه میدهد اتصالات به میزبانهایی با کلیدهای میزبان تغییریافته ادامه یابد. اگر این پرچم رویask(پیشفرض) تنظیم شود، کلیدهای میزبان جدید تنها پس از اینکه کاربر تأیید کند که واقعاً مایل به انجام این کار است به پروندههای میزبان شناختهشده کاربر اضافه میشوند، و ssh از اتصال به میزبانهایی که کلید میزبان آنها تغییر کرده است خودداری خواهد کرد. کلیدهای میزبانِ مربوط به میزبانهای شناختهشده در تمامی موارد به صورت خودکار اعتبارسنجی خواهند شد. SyslogFacility- کد تسهیلات (facility code) مورد استفاده هنگام ثبت لاگ پیامها از ssh(1) را تعیین میکند. مقادیر ممکن عبارتند از: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. پیشفرض USER است.
TCPKeepAlive- مشخص
میکند که
آیا سیستم
باید
پیامهای keepalive
مربوط به TCP
را به طرف
مقابل
ارسال کند
یا خیر. اگر
ارسال
شوند، قطعی
اتصال یا از
کار افتادن
یکی از
ماشینها
به درستی
شناسایی
خواهد شد.
با این حال،
این بدان
معنی است که
اگر مسیر به
طور موقت
قطع شود،
اتصالات
قطع خواهند
شد و برخی
افراد این
موضوع را
آزاردهنده
میدانند.
پیشفرض
yesاست (برای ارسال پیامهای TCP keepalive)، و کلاینت در صورتی که شبکه قطع شود یا میزبان راه دور از کار بیفتد، متوجه خواهد شد. این امر در اسکریپتها مهم است و بسیاری از کاربران نیز خواهان آن هستند.برای غیرفعال کردن پیامهای TCP keepalive، مقدار باید روی
noتنظیم شود. همچنین برای پیامهای زنده بودن در سطح پروتکل، بهServerAliveIntervalمراجعه کنید. Tag- نام برچسب
پیکربندی
را مشخص
میکند که
ممکن است
بعداً توسط
یک
دستورالعمل
Matchبرای انتخاب یک بلوک پیکربندی استفاده شود. Tunnel- درخواست
بازارسال
دستگاه
tun(4) بین
کلاینت و
سرور را
ارائه
میدهد.
آرگومان
باید
yes ،point-to-point(لایه ۳)،ethernet(لایه ۲)، یاno(پیشفرض) باشد. مشخص کردنyesحالت تونل پیشفرض را کهpoint-to-pointاست درخواست میکند. TunnelDevice- دستگاههای
tun(4) را
برای باز
شدن در
کلاینت
(local_tun) و
سرور (remote_tun)
مشخص
میکند.
آرگومان باید به صورت local_tun[:remote_tun] باشد. دستگاهها را میتوان با شناسهٔ عددی یا کلیدواژهٔ
anyمشخص کرد، که از دستگاه تونل در دسترس بعدی استفاده میکند. اگر remote_tun مشخص نشده باشد، پیشفرض آنanyخواهد بود. پیشفرضany:anyاست. UpdateHostKeys- مشخص
میکند که
آیا ssh(1)
باید
اعلانهای
کلیدهای
میزبان
اضافی
ارسالشده
از سرور پس
از اتمام
احراز هویت
را بپذیرد و
آنها را به
UserKnownHostsFileاضافه کند یا خیر. آرگومان بایدyes ،noیاaskباشد. این گزینه امکان یادگیری کلیدهای میزبان جایگزین برای یک سرور را فراهم میکند و با اجازه دادن به سرور برای ارسال کلیدهای عمومی جایگزین پیش از حذف کلیدهای قدیمی، از چرخش روان کلیدها (key rotation) پشتیبانی میکند.کلیدهای میزبان اضافی تنها در صورتی پذیرفته میشوند که کلید مورد استفاده برای احراز هویت میزبان از پیش مورد اعتماد بوده یا صراحتاً توسط کاربر پذیرفته شده باشد، میزبان از طریق
UserKnownHostsFile(یعنی نه از طریقGlobalKnownHostsFile) احراز هویت شده باشد و میزبان با استفاده از یک کلید ساده و نه یک گواهی احراز هویت شده باشد.گزینهٔ
UpdateHostKeysبه طور پیشفرض در صورتی که کاربر تنظیم پیشفرضUserKnownHostsFileرا لغو نکرده باشد وVerifyHostKeyDNSرا فعال نکرده باشد فعال است؛ در غیر این صورتUpdateHostKeysرویnoتنظیم خواهد شد.اگر
UpdateHostKeysرویaskتنظیم شود، از کاربر خواسته میشود تا اصلاحات در پروندهٔ known_hosts را تأیید کند. تأیید در حال حاضر باControlPersistناسازگار است و در صورت فعال بودن آن، غیرفعال خواهد شد.در حال حاضر، تنها sshd(8) از نگارش OpenSSH 6.8 و بالاتر از افزونهٔ پروتکل "hostkeys@openssh.com" مورد استفاده برای مطلع ساختن کلاینت از تمام کلیدهای میزبان سرور پشتیبانی میکند.
User- کاربری را
که باید با
نام آن وارد
سیستم شد
مشخص
میکند. این
گزینه
میتواند
زمانی مفید
باشد که در
ماشینهای
مختلف از
نام کاربری
متفاوتی
استفاده
میشود. این
کار زحمت به
خاطر سپردن
ذکر نام
کاربری در
خط فرمان را
برطرف
میکند.
آرگومانهای
Userمیتوانند از توکنهای شرح دادهشده در بخش توکنها (TOKENS) (به استثنای %r و %C) و متغیرهای محیطی شرح دادهشده در بخش متغیرهای محیطی (ENVIRONMENT VARIABLES) استفاده کنند. UserKnownHostsFile- یک یا چند
پرونده را
برای
استفاده به
عنوان
پایگاه
داده کلید
میزبان
کاربر، با
تفکیک توسط
فاصله خالی
مشخص
میکند. هر
نام پرونده
میتواند
از
نمادگذاری
تیلدا برای
ارجاع به
دایرکتوری
خانگی
کاربر،
توکنهای
شرح
دادهشده
در بخش
توکنها
(TOKENS) و
متغیرهای
محیطی شرح
دادهشده
در بخش
متغیرهای
محیطی (ENVIRONMENT VARIABLES)
استفاده
کند. مقدار
noneباعث میشود ssh(1) هرگونه پروندههای میزبان شناختهشدهٔ ویژه کاربر را نادیده بگیرد. پیشفرض عبارت است از ~/.ssh/known_hosts, ~/.ssh/known_hosts2. VerifyHostKeyDNS- مشخص
میکند که
آیا کلید
راه دور
باید با
استفاده از
رکوردهای
منبع DNS و SSHFP
اعتبارسنجی
شود یا خیر.
اگر این
گزینه روی
yesتنظیم شود، کلاینت به طور ضمنی به کلیدهایی که با یک اثرانگشت امن از DNS مطابقت دارند اعتماد خواهد کرد. اثرانگشتهای ناامن به گونهای مدیریت خواهند شد که گویی این گزینه رویaskتنظیم شده است. اگر این گزینه رویaskتنظیم شود، اطلاعات مربوط به تطابق اثرانگشت نمایش داده خواهد شد، اما کاربر همچنان باید کلیدهای میزبان جدید را مطابق با گزینهٔStrictHostKeyCheckingتأیید کند. پیشفرضnoاست.همچنین به اعتبارسنجی کلیدهای میزبان (VERIFYING HOST KEYS) در ssh(1) مراجعه کنید.
VersionAddendum- به صورت
اختیاری
متن اضافی
را برای
الحاق به
بنر پروتکل
SSH که توسط
کلاینت
هنگام
اتصال
ارسال
میشود،
مشخص
میکند.
پیشفرض
noneاست. VisualHostKey- اگر این
پرچم روی
yesتنظیم شود، یک تصویر اسکی (ASCII art) از اثرانگشت کلید میزبان راه دور علاوه بر رشته اثرانگشت، هنگام ورود به سیستم و برای کلیدهای میزبان ناشناخته چاپ میشود. اگر این پرچم رویno(پیشفرض) تنظیم شود، هیچ رشته اثرانگشتی هنگام ورود چاپ نمیشود و تنها رشته اثرانگشت برای کلیدهای میزبان ناشناخته چاپ خواهد شد. WarnWeakCrypto- کنترل
میکند که
آیا در صورت
ضعیف بودن
یا توصیه
نشدن
الگوریتمهای
رمزنگاری
مذاکرهشده
برای
اتصال، به
کاربر
هشدار داده
شود یا خیر.
هشدارها
میتوانند
با خاموش
کردن یک
هشدار خاص
یا با
غیرفعال
کردن تمام
هشدارها
غیرفعال
شوند.
هشدارهای
مربوط به
اتصالاتی
که از تبادل
کلید
پساکوانتومی
استفاده
نمیکنند،
میتوانند
با استفاده
از پرچم
no-pq-kexغیرفعال شوند. مقدارnoتمام هشدارها را غیرفعال خواهد کرد. پیشفرض، معادلyes ،فعال کردن تمام هشدارها است. XAuthLocation- مسیر کامل برنامهٔ xauth(1) را مشخص میکند. پیشفرض /usr/bin/xauth است.
الگوها (PATTERNS)
یک الگوی شامل صفر یا چند نویسهٔ غیرفاصله، ‘*’ (یک نویسهٔ عمومی که با صفر یا چند نویسه مطابقت دارد)، یا ‘?’ (یک نویسهٔ عمومی که دقیقاً با یک نویسه مطابقت دارد) است. برای مثال، برای مشخص کردن مجموعهای از اعلانها برای هر میزبانی در مجموعه دامنههای ".co.uk ،" میتوان از الگوی زیر استفاده کرد:
Host *.co.ukالگوی زیر با هر میزبانی در محدوده شبکهٔ 192.168.0.[0-9] مطابقت خواهد داشت:
Host 192.168.0.?یک فهرست-الگو فهرستی از الگوها است که با کاما از یکدیگر جدا شدهاند. الگوهای موجود در فهرست الگوها میتوانند با قرار دادن یک علامت تعجب در ابتدای آنها (‘!’) نفی شوند. برای مثال، برای مجاز کردن استفاده از یک کلید از هر نقطه در یک سازمان به جز از مجموعهٔ "dialup ،" میتوان از مدخل زیر (در authorized_keys) استفاده کرد:
from="!*.dialup.example.com,*.example.com"توجه داشته باشید که یک تطابق نفیشده هرگز به خودی خود نتیجه مثبتی ایجاد نخواهد کرد. برای مثال، تلاش برای مطابقت دادن "host3" با فهرست الگوی زیر با شکست مواجه خواهد شد:
from="!host1,!host2"راه حل در اینجا گنجاندن عبارتی است که تطابق مثبت ایجاد کند، مانند یک نویسهٔ عمومی:
from="!host1,!host2,*"توکنها (TOKENS)
آرگومانهای برخی از کلیدواژهها میتوانند از توکنها استفاده کنند، که در زمان اجرا باز (منبسط) میشوند. توکنها بدون نقلقول کردن یا اسکیپ کردن نویسههای پوسته باز میشوند. اطمینان از ایمن بودن آنها در زمینهٔ استفادهشان بر عهدهٔ کاربر است.
توکنهای
پشتیبانیشده
در ssh_config
عبارتند
از:
- %%
- نویسهٔ تحتاللفظی ‘%’.
- %C
- درهمسازی (هش) %l%h%p%r%j.
- %d
- دایرکتوری خانگی کاربر محلی.
- %f
- اثرانگشت کلید میزبان سرور.
- %H
- نام میزبان یا نشانی در known_hosts که جستجو میشود.
- %h
- نام میزبان راه دور.
- %I
- رشتهای که
دلیل اجرای
یک
KnownHostsCommandرا توصیف میکند: یاADDRESSهنگام جستجوی یک میزبان بر اساس نشانی (تنها زمانی کهCheckHostIPفعال باشد)،HOSTNAMEهنگام جستجو بر اساس نام میزبان، یاORDERهنگام آمادهسازی فهرست اولویت الگوریتم کلید میزبان برای استفاده در میزبان مقصد. - %i
- شناسهٔ کاربر محلی (UID).
- %j
- محتوای گزینهٔ ProxyJump، یا رشتهٔ خالی در صورتی که این گزینه تنظیم نشده باشد.
- %K
- کلید میزبان با کدگذاری base64.
- %k
- نام مستعار کلید میزبان در صورت تعیین، در غیر این صورت نام میزبان راه دور اصلی ارائهشده در خط فرمان.
- %L
- نام میزبان محلی.
- %l
- نام میزبان محلی، شامل نام دامنه.
- %n
- نام میزبان راه دور اصلی، همانطور که در خط فرمان داده شده است.
- %p
- پورت راه دور.
- %r
- نام کاربری راه دور.
- %T
- رابط شبکه محلی tun(4) یا tap(4) تخصیصیافته در صورتی که بازارسال تونل درخواست شده باشد، یا "NONE" در غیر این صورت.
- %t
- نوع کلید
میزبان
سرور،
مثلاً
ssh-ed25519. - %u
- نام کاربری محلی.
کلیدواژههای
CertificateFile,
ControlPath, IdentityAgent,
IdentityFile, Include,
KnownHostsCommand,
LocalForward, Match exec,
RemoteCommand,
RemoteForward,
RevokedHostKeys,
UserKnownHostsFile و
VersionAddendum
توکنهای %%, %C, %d,
%h, %i, %j, %k, %L, %l, %n, %p, %r و %u را
میپذیرند.
KnownHostsCommand
علاوه بر
این،
توکنهای %f, %H, %I,
%K و %t را نیز
میپذیرد.
Hostname
توکنهای %% و
%h را
میپذیرد.
LocalCommand
تمامی
توکنها را
میپذیرد.
ProxyCommand و
ProxyJump
توکنهای %%, %h, %n,
%p و %r را
میپذیرند.
توجه داشته باشید که برخی از این دستورالعملها دستوراتی را برای اجرا از طریق پوسته میسازند. از آنجا که ssh(1) هیچگونه پالایش یا اسکیپ کردنی برای نویسههایی که در دستورات پوسته معنای ویژهای دارند (مانند علامتهای نقلقول) انجام نمیدهد، اطمینان از اینکه آرگومانهای ارائهشده به ssh(1) حاوی چنین نویسههایی نباشند و توکنها هنگام استفاده به طور مناسب نقلقول شوند، بر عهدهٔ کاربر است.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
آرگومانهای
برخی از
کلیدواژهها
میتوانند
در زمان
اجرا از
متغیرهای
محیطی روی
کلاینت با
قرار دادن
آنها در
${} گسترش
یابند؛
برای مثال
${HOME}/.ssh به
دایرکتوری
.ssh کاربر
ارجاع
میدهد. اگر
یک متغیر
محیطی
مشخصشده
وجود
نداشته
باشد،
خطایی
بازگردانده
شده و
تنظیمات
مربوط به آن
کلیدواژه
نادیده
گرفته
خواهد شد.
کلیدواژههای
CertificateFile,
ControlPath, IdentityAgent,
IdentityFile, Include,
KnownHostsCommand و
UserKnownHostsFile از
متغیرهای
محیطی
پشتیبانی
میکنند.
کلیدواژههای
LocalForward و
RemoteForward تنها
برای
مسیرهای
سوکت دامنه
یونیکس از
متغیرهای
محیطی
پشتیبانی
میکنند.
فایلها (FILES)
- ~/.ssh/config
- پرونده پیکربندی اختصاصی هر کاربر است. قالب این پرونده در بالا شرح داده شده است. این پرونده توسط کلاینت SSH استفاده میشود. به دلیل احتمال سوءاستفاده، این پرونده باید مجوزهای سختگیرانهای داشته باشد: خواندن/نوشتن برای کاربر، و غیرقابل نوشتن برای دیگران.
- /etc/ssh/ssh_config
- پرونده پیکربندی سراسری سیستم است. این پرونده مقادیر پیشفرض را برای آن دسته از مقادیری که در پرونده پیکربندی کاربر مشخص نشدهاند، و برای کاربرانی که پرونده پیکربندی ندارند، فراهم میکند. این پرونده باید برای همگان خواندنی باشد.
همچنین ببینید (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 پشتیبانی از نگارشهای 1.5 و 2.0 پروتکل SSH را ارائه داد.
| July 11, 2026 | Linux 6.12.107+deb13-amd64 |