.\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland .\" All rights reserved .\" .\" As far as I am concerned, the code I have written for this software .\" can be used freely for any purpose. Any derived versions of this .\" software must be clearly marked as such, and if the derived work is .\" incompatible with the protocol description in the RFC file, it must be .\" called by a name other than "ssh" or "Secure Shell". .\" .\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. .\" Copyright (c) 1999 Aaron Campbell. All rights reserved. .\" Copyright (c) 1999 Theo de Raadt. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" $OpenBSD: ssh.1,v 1.454 2026/08/04 22:47:07 naddy Exp $ .Dd $Mdocdate: August 4 2026 $ .Dt SSH 1 .Os .Sh "نام (NAME)" .\" ssh \- کلاینت ارتباط امن OpenSSH (برنامه ورود از راه دور) .Nm ssh .Nd کلاینت ارتباط امن OpenSSH (برنامه ورود از راه دور) .Sh "خلاصه دستور (SYNOPSIS)" .Nm ssh .Op Fl 46AaCfGgKkMNnqsTtVvXxYyZ .Op Fl B Ar bind_interface .Op Fl b Ar bind_address .Op Fl c Ar cipher_spec .Op Fl D Oo Ar bind_address : Oc Ns Ar port .Op Fl E Ar log_file .Op Fl e Ar escape_char .Op Fl F Ar configfile .Op Fl I Ar pkcs11 .Op Fl i Ar identity_file .Op Fl J Ar destination .Op Fl L Ar address .Op Fl l Ar login_name .Op Fl m Ar mac_spec .Op Fl O Ar ctl_cmd .Op Fl o Ar option .Op Fl P Ar tag .Op Fl p Ar port .Op Fl R Ar address .Op Fl S Ar ctl_path .Op Fl W Ar host : Ns Ar port .Op Fl w Ar local_tun Ns Op : Ns Ar remote_tun .Ar destination .Op Ar command Op Ar argument ... .Nm .Op Fl Q Ar query_option .Sh "توضیحات (DESCRIPTION)" .Nm (کلاینت SSH) برنامه‌ای برای ورود به یک ماشین راه دور و اجرای دستورات روی آن ماشین است. هدف این ابزار برقراری ارتباطات رمزگذاری‌شده و امن میان دو میزبان غیرقابل اعتماد بر روی یک شبکه ناامن است. اتصالات X11، درگاه‌های دلخواه TCP و سوکت‌های دامنه .Ux .Pq Ux Ns -domain نیز می‌توانند از طریق این کانال امن بازفرستاده شوند. .Pp .Nm به .Ar destination (مقصد) مشخص‌شده متصل شده و به آن وارد می‌شود، که مقصد می‌تواند به صورت .Sm off .Oo user @ Oc hostname .Sm on یا یک نشانی وب (URI) به شکل .Sm off .No ssh:// Oo user @ Oc hostname Op : port . .Sm on مشخص گردد. کاربر باید با استفاده از یکی از چندین روش موجود، هویت خود را به ماشین راه دور اثبات کند (به بخش زیر مراجعه کنید). .Pp اگر یک .Ar command (دستور) مشخص شده باشد، به جای پوسته ورود (login shell) بر روی میزبان راه دور اجرا خواهد شد. یک خط فرمان کامل می‌تواند به عنوان .Ar command تعیین شود، یا ممکن است دارای آرگومان‌های اضافی باشد. در صورت ارائه، آرگومان‌ها پیش از ارسال به سرور جهت اجرا، با فاصله به انتهای دستور متصل می‌شوند. .Pp گزینه‌ها به شرح زیر هستند: .Pp .Bl -tag -width Ds -compact .It Fl 4 اجبار .Nm به استفاده انحصاری از نشانی‌های IPv4. .Pp .It Fl 6 اجبار .Nm به استفاده انحصاری از نشانی‌های IPv6. .Pp .It Fl A فعال‌سازی بازفرستادن اتصالات از یک عامل احراز هویت مانند .Xr ssh-agent 1 . این مورد را می‌توان بر اساس هر میزبان نیز در یک فایل پیکربندی مشخص کرد. .Pp بازفرستادن عامل احراز هویت باید با احتیاط فعال شود. کاربرانی که توانایی دور زدن دسترسی‌های فایل را در میزبان راه دور دارند (برای سوکت دامنه .Ux عامل) می‌توانند از طریق اتصال بازفرستاده‌شده به عامل محلی دسترسی یابند. یک مهاجم نمی‌تواند اطلاعات کلید را از عامل به دست آورد، اما می‌تواند عملیاتی را بر روی کلیدها انجام دهد که امکان احراز هویت با استفاده از هویت‌های بارگذاری‌شده در عامل را برای او فراهم می‌کند. یک جایگزین امن‌تر می‌تواند استفاده از یک میزبان پرش (jump host) باشد (به گزینه .Fl J مراجعه کنید). .Pp .It Fl a غیرفعال‌سازی بازفرستادن اتصال عامل احراز هویت. .Pp .It Fl B Ar bind_interface متصل شدن به نشانی .Ar bind_interface پیش از تلاش برای اتصال به میزبان مقصد. این گزینه تنها در سیستم‌هایی که دارای بیش از یک نشانی هستند کاربرد دارد. .Pp .It Fl b Ar bind_address استفاده از .Ar bind_address در ماشین محلی به عنوان نشانی مبدا برای اتصال. تنها در سیستم‌هایی با بیش از یک نشانی کاربرد دارد. .Pp .It Fl C درخواست فشرده‌سازی تمام داده‌ها (شامل ورودی استاندارد، خروجی استاندارد، خطای استاندارد، و داده‌های اتصالات بازفرستاده‌شدهٔ X11، TCP و دامنه .Ux Ns ). الگوریتم فشرده‌سازی همان مورد استفاده در .Xr gzip 1 است. فشرده‌سازی بر روی خطوط مودم و سایر اتصالات کند مطلوب است، اما در شبکه‌های پرسرعت تنها سرعت را کاهش می‌دهد. مقدار پیش‌فرض را می‌توان بر اساس هر میزبان در فایل‌های پیکربندی تعیین کرد؛ گزینه .Cm Compression را در .Xr ssh_config 5 ببینید. .Pp .It Fl c Ar cipher_spec انتخاب مشخصه رمزگذاری جهت رمزگذاری نشست. .Ar cipher_spec فهرستی از رمزها است که با کاما از یکدیگر جدا شده و بر اساس اولویت مرتب شده‌اند. برای اطلاعات بیشتر کلیدواژه .Cm Ciphers را در .Xr ssh_config 5 ببینید. .Pp .It Fl D Xo .Sm off .Oo Ar bind_address : Oc .Ar port .Sm on .Xc تعیین یک بازفرستادن پویای درگاه .Pq Dq dynamic در سطح برنامه به صورت محلی. این قابلیت با تخصیص یک سوکت برای گوش دادن به .Ar port در سمت محلی، که به صورت اختیاری به .Ar bind_address مشخص‌شده متصل است، کار می‌کند. هر زمان اتصالی به این درگاه برقرار شود، اتصال بر روی کانال امن بازفرستاده می‌شود، و سپس پروتکل برنامه برای تعیین این که از ماشین راه دور به کجا متصل شود استفاده می‌گردد. در حال حاضر پروتکل‌های SOCKS4 و SOCKS5 پشتیبانی می‌شوند، و .Nm به عنوان یک سرور SOCKS عمل خواهد کرد. تنها کاربر ریشه (root) می‌تواند درگاه‌های ممتاز را بازفرستد. بازفرستادن‌های پویای درگاه را می‌توان در فایل پیکربندی نیز مشخص کرد. .Pp نشانی‌های IPv6 را می‌توان با قرار دادن نشانی در داخل براکت‌های چهارگوش مشخص کرد. تنها کاربر ارشد (superuser) می‌تواند درگاه‌های ممتاز را بازفرستد. به‌طور پیش‌فرض، درگاه محلی مطابق با تنظیم .Cm GatewayPorts متصل می‌شود. با این حال، می‌توان از یک .Ar bind_address صریح برای متصل کردن اتصال به یک نشانی خاص استفاده کرد. یک .Ar bind_address با مقدار .Dq localhost نشان می‌دهد که درگاه شنود تنها برای استفاده محلی متصل شود، در حالی که یک نشانی خالی یا .Sq * نشان می‌دهد که درگاه باید از تمام رابط‌ها در دسترس باشد. .Pp .It Fl E Ar log_file افزودن لاگ‌های اشکال‌زدایی به .Ar log_file به جای خطای استاندارد. .Pp .It Fl e Ar escape_char تنظیم نویسه گریز برای نشست‌های دارای pty (پیش‌فرض: .Ql ~ ). نویسه گریز تنها در ابتدای خط شناسایی می‌شود. نویسه گریز که به دنبال آن یک نقطه .Pq Ql \&. بیاید، اتصال را می‌بندد؛ به دنبال آن کنترل-Z اتصال را معلق می‌کند؛ و به دنبال آن خود نویسه، آن را یک بار ارسال می‌کند. تنظیم نویسه بر روی .Dq none تمام نویسه‌های گریز را غیرفعال کرده و نشست را کاملاً شفاف می‌سازد. .Pp .It Fl F Ar configfile تعیین یک فایل پیکربندی جایگزین برای هر کاربر. اگر فایل پیکربندی در خط فرمان ارائه شود، فایل پیکربندی سراسری سیستم .Pq Pa /etc/ssh/ssh_config نادیده گرفته خواهد شد. مقدار پیش‌فرض برای فایل پیکربندی کاربر .Pa ~/.ssh/config است. اگر بر روی .Dq none تنظیم شود، هیچ فایل پیکربندی خوانده نخواهد شد. .Pp .It Fl f درخواست از .Nm برای رفتن به پس‌زمینه دقیقاً پیش از اجرای دستور. این گزینه در صورتی مفید است که .Nm بخواهد رمزهای عبور یا عبارت‌های عبور را درخواست کند، اما کاربر تمایل داشته باشد برنامه در پس‌زمینه قرار گیرد. این متضمن گزینه .Fl n است. روش توصیه‌شده برای اجرای برنامه‌های X11 در یک سایت راه دور، فرمانی مانند .Ic ssh -f host xterm است. .Pp اگر گزینه پیکربندی .Cm ExitOnForwardFailure روی .Dq yes تنظیم شده باشد، کلاینتی که با .Fl f شروع به کار کرده پیش از قرار دادن خود در پس‌زمینه، منتظر می‌ماند تا تمام بازفرستادن‌های درگاه راه دور با موفقیت برقرار شوند. برای جزئیات بیشتر به توضیحات .Cm ForkAfterAuthentication در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl G باعث می‌شود .Nm پیکربندی خود را پس از ارزیابی بلوک‌های .Cm Host و .Cm Match چاپ کرده و خارج شود. .Pp .It Fl g به میزبان‌های راه دور اجازه می‌دهد به درگاه‌های بازفرستاده‌شدهٔ محلی متصل شوند. اگر در یک اتصال چندگانه (تسهیم‌شده) استفاده شود، این گزینه باید روی فرایند اصلی (master) مشخص شود. .Pp .It Fl I Ar pkcs11 مشخص کردن کتابخانه مشترک PKCS#11 که .Nm باید برای ارتباط با توکن PKCS#11 فراهم‌کننده کلیدها جهت احراز هویت کاربر استفاده کند. .Pp .It Fl i Ar identity_file انتخاب فایلی که هویت (کلید خصوصی) برای احراز هویت با کلید عمومی از آن خوانده می‌شود. همچنین زمانی که فایل کلید خصوصی به صورت محلی وجود ندارد، می‌توانید یک فایل کلید عمومی مشخص کنید تا از کلید خصوصی مربوطه‌ای که در .Xr ssh-agent 1 بارگذاری شده است استفاده شود. پیش‌فرض شامل .Pa ~/.ssh/id_rsa ، .Pa ~/.ssh/id_ecdsa ، .Pa ~/.ssh/id_ecdsa_sk ، .Pa ~/.ssh/id_ed25519 ، .Pa ~/.ssh/id_ed25519_sk و .Pa ~/.ssh/id_mldsa44_ed25519 است. فایل‌های هویت را می‌توان بر اساس هر میزبان در فایل پیکربندی نیز مشخص کرد. امکان مشخص کردن چندین گزینه .Fl i (و چندین هویت تعیین‌شده در فایل‌های پیکربندی) وجود دارد. اگر هیچ گواهی‌نامه‌ای به صراحت توسط دستورالعمل .Cm CertificateFile مشخص نشده باشد، .Nm همچنین تلاش خواهد کرد اطلاعات گواهی‌نامه را از نام فایلی که با افزودن .Pa -cert.pub به نام‌های فایل‌های هویت به دست می‌آید بارگذاری کند. .Pp .It Fl J Ar destination اتصال به میزبان هدف از طریق برقراری نخستین اتصال .Nm به میزبان پرش (jump host) توصیف‌شده توسط .Ar destination و سپس برقراری بازفرستادن TCP به مقصد نهایی از آنجا. چندین پرش متوالی را می‌توان به صورت جداشده با کاما مشخص کرد. نشانی‌های IPv6 را می‌توان با قرار دادن در براکت‌های چهارگوش تعیین نمود. این یک میانبر برای تعیین دستورالعمل پیکربندی .Cm ProxyJump است. توجه داشته باشید که دستورالعمل‌های پیکربندی ارائه‌شده در خط فرمان عموماً بر میزبان مقصد اعمال می‌شوند و نه بر میزبان‌های پرش مشخص‌شده. از .Pa ~/.ssh/config برای تعیین پیکربندی میزبان‌های پرش استفاده کنید. .Pp .It Fl K فعال‌سازی احراز هویت مبتنی بر GSSAPI و بازفرستادن (واگذاری) مدارک GSSAPI به سرور. .Pp .It Fl k غیرفعال‌سازی بازفرستادن (واگذاری) مدارک GSSAPI به سرور. .Pp .It Fl L Xo .Sm off .Oo Ar bind_address : Oc .Ar port : host : hostport .Sm on .Xc .It Fl L Xo .Sm off .Oo Ar bind_address : Oc .Ar port : remote_socket .Sm on .Xc .It Fl L Xo .Sm off .Ar local_socket : host : hostport .Sm on .Xc .It Fl L Xo .Sm off .Ar local_socket : remote_socket .Sm on .Xc مشخص می‌کند که اتصالات به درگاه TCP مشخص‌شده یا سوکت یونیکس در میزبان محلی (کلاینت)، باید به میزبان و درگاه داده‌شده، یا سوکت یونیکس، در سمت راه دور بازفرستاده شوند. این سازوکار با تخصیص یک سوکت برای گوش دادن به یک .Ar port (درگاه TCP) در سمت محلی (اختیاراً متصل به .Ar bind_address مشخص‌شده) یا به یک سوکت یونیکس کار می‌کند. هر زمان اتصالی به درگاه یا سوکت محلی برقرار شود، اتصال بر روی کانال امن بازفرستاده می‌شود، و اتصالی از ماشین راه دور به درگاه .Ar hostport روی میزبان .Ar host یا به سوکت یونیکس .Ar remote_socket برقرار می‌گردد. .Pp بازفرستادن‌های درگاه را می‌توان در فایل پیکربندی نیز مشخص کرد. تنها کاربر ممتاز (superuser) می‌تواند درگاه‌های ممتاز را بازفرستد. نشانی‌های IPv6 را می‌توان با قرار دادن نشانی در براکت‌های چهارگوش مشخص کرد. .Pp به‌طور پیش‌فرض، درگاه محلی مطابق با تنظیم .Cm GatewayPorts متصل می‌شود. با این حال، می‌توان از یک .Ar bind_address صریح برای متصل کردن اتصال به یک نشانی خاص استفاده کرد. مقدار .Dq localhost برای .Ar bind_address نشان می‌دهد که درگاه شنود تنها برای استفاده محلی متصل شود، در حالی که یک نشانی خالی یا .Sq * نشان می‌دهد که درگاه باید بر روی تمام رابط‌ها در دسترس باشد. .Pp .It Fl l Ar login_name تعیین نام کاربری برای ورود به ماشین راه دور. این مورد را می‌توان بر اساس هر میزبان در فایل پیکربندی نیز مشخص کرد. .Pp .It Fl M قرار دادن کلاینت .Nm در حالت .Dq master (اصلی) برای اشتراک‌گذاری اتصال. گزینه‌های مکرر .Fl M کلاینت .Nm را در حالت .Dq master قرار می‌دهند اما با الزام به تایید با استفاده از .Xr ssh-askpass 1 پیش از هر عملیاتی که وضعیت تسهیم‌سازی را تغییر دهد (مانند باز کردن یک نشست جدید). برای جزئیات بیشتر به توضیحات .Cm ControlMaster در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl m Ar mac_spec فهرستی جداشده با کاما از الگوریتم‌های MAC (کد احراز اصالت پیام)، که به ترتیب اولویت مشخص شده‌اند. برای اطلاعات بیشتر کلیدواژه .Cm MACs را در .Xr ssh_config 5 ببینید. .Pp .It Fl N دستور راه دور را اجرا نکن. این گزینه برای مواقعی که تنها قصد بازفرستادن درگاه‌ها را دارید مفید است. برای جزئیات به توضیحات .Cm SessionType در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl n تغییر مسیر ورودی استاندارد از .Pa /dev/null (در واقع، جلوگیری از خواندن از stdin). هنگامی که .Nm در پس‌زمینه اجرا می‌شود باید از این گزینه استفاده کرد. یک ترفند متداول استفاده از این گزینه برای اجرای برنامه‌های X11 بر روی ماشین راه دور است. برای مثال، .Ic ssh -n shadows.cs.hut.fi emacs & یک ویرایشگر emacs را روی shadows.cs.hut.fi اجرا می‌کند و اتصال X11 به‌طور خودکار از طریق یک کانال رمزگذاری‌شده بازفرستاده می‌شود. برنامه .Nm در پس‌زمینه قرار خواهد گرفت. (این روش در صورتی که .Nm نیاز به درخواست رمز عبور یا عبارت عبور داشته باشد کار نمی‌کند؛ همچنین گزینه .Fl f را ببینید). برای جزئیات بیشتر به توضیحات .Cm StdinNull در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl O Ar ctl_cmd کنترل یک فرایند اصلی (master) فعال برای تسهیم‌سازی اتصالات. هنگامی که گزینه .Fl O مشخص می‌شود، آرگومان .Ar ctl_cmd تفسیر شده و به فرایند اصلی فرستاده می‌شود. دستورات معتبر عبارتند از: .Dq check (بررسی در حال اجرا بودن فرایند اصلی)، .Dq conninfo (گزارش اطلاعات درباره اتصال اصلی)، .Dq channels (گزارش اطلاعات درباره کانال‌های باز)، .Dq forward (درخواست بازفرستادن‌ها بدون اجرای دستور)، .Dq cancel (لغو بازفرستادن‌ها)، .Dq proxy (اتصال به یک فرایند اصلیِ تسهیم‌سازیِ در حال اجرا در حالت پروکسی)، .Dq exit (درخواست خروج از فرایند اصلی)، و .Dq stop (درخواست از فرایند اصلی برای متوقف کردن پذیرش درخواست‌های تسهیم‌سازی بیشتر). .Pp .It Fl o Ar option می‌تواند برای ارائه گزینه‌ها در قالبی که در فایل پیکربندی استفاده می‌شود به کار رود. این گزینه برای تعیین تنظیماتی که سوئیچ جداگانه‌ای در خط فرمان ندارند مفید است. برای جزئیات کامل گزینه‌ها و مقادیر آن‌ها، .Xr ssh_config 5 را ببینید. .Pp .It Fl P Ar tag مشخص کردن یک نام برچسب که می‌تواند برای انتخاب پیکربندی در .Xr ssh_config 5 استفاده شود. برای اطلاعات بیشتر به کلیدواژه‌های .Cm Tag و .Cm Match در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl p Ar port درگاه برای اتصال به میزبان راه دور. این را می‌توان بر اساس هر میزبان در فایل پیکربندی مشخص کرد. .Pp .It Fl Q Ar query_option استعلام الگوریتم‌های پشتیبانی‌شده توسط یکی از ویژگی‌های زیر: .Ar cipher (رمزهای متقارن پشتیبانی‌شده)، .Ar cipher-auth (رمزهای متقارن پشتیبانی‌شده با پشتیبانی از رمزگذاری احراز هویت‌شده)، .Ar help (اصطلاحات پرس‌وجوی پشتیبانی‌شده برای استفاده با فلگ .Fl Q Ns )، .Ar mac (کدهای یکپارچگی پیام پشتیبانی‌شده)، .Ar kex (الگوریتم‌های تبادل کلید)، .Ar key (انواع کلید)، .Ar key-ca-sign (الگوریتم‌های معتبر امضای مرجع گواهی برای گواهی‌نامه‌ها)، .Ar key-cert (انواع کلیدهای گواهی‌نامه)، .Ar key-plain (انواع کلیدهای غیرگواهی‌نامه‌ای)، .Ar key-sig (تمام انواع کلید و الگوریتم‌های امضا)، .Ar protocol-version (نسخه‌های پشتیبانی‌شده پروتکل SSH)، و .Ar sig (الگوریتم‌های امضای پشتیبانی‌شده). همچنین، هر کلیدواژه‌ای از .Xr ssh_config 5 یا .Xr sshd_config 5 که یک فهرست الگوریتم را دریافت می‌کند، می‌تواند به عنوان نام مستعار برای query_option متناظر استفاده شود. .Pp .It Fl q حالت بی‌صدا (Quiet mode). باعث فرونشاندن بیشتر پیام‌های هشدار و تشخیصی می‌شود. .Pp .It Fl R Xo .Sm off .Oo Ar bind_address : Oc .Ar port : host : hostport .Sm on .Xc .It Fl R Xo .Sm off .Oo Ar bind_address : Oc .Ar port : local_socket .Sm on .Xc .It Fl R Xo .Sm off .Ar remote_socket : host : hostport .Sm on .Xc .It Fl R Xo .Sm off .Ar remote_socket : local_socket .Sm on .Xc .It Fl R Xo .Sm off .Oo Ar bind_address : Oc .Ar port .Sm on .Xc مشخص می‌کند که اتصالات به درگاه TCP تعیین‌شده یا سوکت یونیکس در میزبان راه دور (سرور)، باید به سمت محلی بازفرستاده شوند. .Pp این قابلیت با تخصیص یک سوکت برای گوش دادن به یک .Ar port (درگاه TCP) یا به یک سوکت یونیکس در سمت راه دور کار می‌کند. هر زمان اتصالی به این درگاه یا سوکت یونیکس برقرار شود، اتصال بر روی کانال امن بازفرستاده می‌شود و اتصالی از ماشین محلی یا به مقصد صریح مشخص‌شده با درگاه .Ar hostport روی میزبان .Ar host Ns ، یا به .Ar local_socket برقرار می‌گردد؛ یا اگر هیچ مقصد صریحی تعیین نشده باشد، .Nm به عنوان یک پروکسی SOCKS 4/5 عمل کرده و اتصالات را به مقاصد درخواست‌شده توسط کلاینت راه دور SOCKS بازمی‌فرستد. .Pp بازفرستادن‌های درگاه را می‌توان در فایل پیکربندی نیز مشخص کرد. درگاه‌های ممتاز تنها زمانی قابل بازفرستادن هستند که با حساب کاربری ریشه (root) به ماشین راه دور وارد شده باشید. نشانی‌های IPv6 را می‌توان با قرار دادن نشانی در براکت‌های چهارگوش مشخص کرد. .Pp به‌طور پیش‌فرض، سوکت‌های شنود TCP در سرور تنها به رابط loopback متصل می‌شوند. این مورد را می‌توان با تعیین یک .Ar bind_address لغو کرد. یک .Ar bind_address خالی، یا نشانی .Ql * Ns ، نشان می‌دهد که سوکت راه دور باید روی تمام رابط‌ها گوش دهد. تعیین یک .Ar bind_address راه دور تنها زمانی موفقیت‌آمیز خواهد بود که گزینه .Cm GatewayPorts سرور فعال باشد (به .Xr sshd_config 5 مراجعه کنید). .Pp اگر آرگومان .Ar port برابر با .Ql 0 باشد، درگاه شنود به صورت پویا در سرور تخصیص داده شده و در زمان اجرا به کلاینت گزارش می‌شود. هنگام استفاده همراه با .Ic -O forward Ns ، درگاه تخصیص‌یافته در خروجی استاندارد چاپ خواهد شد. .Pp .It Fl S Ar ctl_path تعیین مکان یک سوکت کنترلی برای اشتراک‌گذاری اتصال، یا رشته .Dq none برای غیرفعال کردن اشتراک‌گذاری اتصال. برای جزئیات بیشتر به توضیحات .Cm ControlPath و .Cm ControlMaster در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl s می‌تواند برای درخواست فراخوانی یک زیرسیستم (subsystem) در سیستم راه دور استفاده شود. زیرسیستم‌ها استفاده از SSH را به عنوان یک بستر انتقال امن برای برنامه‌های دیگر (مانند .Xr sftp 1 Ns ) تسهیل می‌کنند. زیرسیستم به عنوان دستور راه دور مشخص می‌شود. برای جزئیات بیشتر به توضیحات .Cm SessionType در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl T غیرفعال‌سازی تخصیص پایانه مجازی (pseudo-terminal). .Pp .It Fl t اجبار به تخصیص پایانه مجازی (pseudo-terminal). این می‌تواند برای اجرای برنامه‌های دلخواه مبتنی بر صفحه نمایش در یک ماشین راه دور استفاده شود، که می‌تواند بسیار مفید باشد، مثلاً هنگام پیاده‌سازی سرویس‌های منو. گزینه‌های مکرر .Fl t تخصیص tty را اجبار می‌کنند، حتی اگر .Nm هیچ tty محلی نداشته باشد. .Pp .It Fl V نمایش شماره نسخه و خروج. .Pp .It Fl v حالت پرحرف (Verbose mode). باعث می‌شود .Nm پیام‌های اشکال‌زدایی درباره روند پیشرفت خود چاپ کند. این مورد در اشکال‌زدایی مشکلات اتصال، احراز هویت و پیکربندی مفید است. گزینه‌های مکرر .Fl v میزان پرحرفی را افزایش می‌دهند. حداکثر مقدار ۳ است. .Pp .It Fl W Ar host : Ns Ar port درخواست می‌کند که ورودی و خروجی استاندارد کلاینت از طریق کانال امن به .Ar host روی درگاه .Ar port بازفرستاده شود. این گزینه متضمن .Fl N ، .Fl T ، .Cm ExitOnForwardFailure و .Cm ClearAllForwardings است، هرچند این موارد را می‌توان در فایل پیکربندی یا با استفاده از گزینه‌های .Fl o در خط فرمان نادیده گرفت. .Pp .It Fl w Xo .Ar local_tun Ns Op : Ns Ar remote_tun .Xc درخواست بازفرستادن دستگاه تونل با دستگاه‌های .Xr tun 4 مشخص‌شده میان کلاینت .Pq Ar local_tun و سرور .Pq Ar remote_tun . .Pp دستگاه‌ها ممکن است با شناسه عددی یا کلیدواژه .Dq any مشخص شوند، که از دستگاه تونل در دسترس بعدی استفاده می‌کند. اگر .Ar remote_tun مشخص نشده باشد، مقدار پیش‌فرض آن .Dq any است. همچنین دستورالعمل‌های .Cm Tunnel و .Cm TunnelDevice را در .Xr ssh_config 5 ببینید. .Pp اگر دستورالعمل .Cm Tunnel تنظیم نشده باشد، روی حالت پیش‌فرض تونل یعنی .Dq point-to-point تنظیم خواهد شد. اگر حالت بازفرستادن متفاوتی برای .Cm Tunnel مورد نظر است، باید پیش از .Fl w مشخص گردد. .Pp .It Fl X فعال‌سازی بازفرستادن X11. این مورد را می‌توان بر اساس هر میزبان در فایل پیکربندی نیز مشخص کرد. .Pp بازفرستادن X11 باید با احتیاط فعال شود. کاربرانی که توانایی دور زدن دسترسی‌های فایل را در میزبان راه دور دارند (برای پایگاه‌داده مجوزهای X متعلق به کاربر) می‌توانند از طریق اتصال بازفرستاده‌شده به نمایشگر محلی X11 دسترسی یابند. یک مهاجم ممکن است پس از آن قادر به انجام اقداماتی چون شنود و پایش فشردن کلیدها (keystroke monitoring) باشد. .Pp به همین دلیل، بازفرستادن X11 به‌طور پیش‌فرض مشمول محدودیت‌های افزونه امنیتی X11 SECURITY است. برای اطلاعات بیشتر به گزینه .Fl Y از .Nm و دستورالعمل .Cm ForwardX11Trusted در .Xr ssh_config 5 مراجعه کنید. .Pp .It Fl x غیرفعال‌سازی بازفرستادن X11. .Pp .It Fl Y فعال‌سازی بازفرستادن مورد اعتماد X11 (trusted X11 forwarding). بازفرستادن‌های مورد اعتماد X11 مشمول کنترل‌های افزونه امنیتی X11 SECURITY نمی‌شوند. .Pp .It Fl y ارسال اطلاعات ثبت وقایع با استفاده از ماژول سیستمی .Xr syslog 3 . به‌طور پیش‌فرض این اطلاعات به stderr فرستاده می‌شود. .Pp .It Fl Z فهرست کردن کلیدهای عمومی که برای احراز هویت به مقصد تعیین‌شده به ترتیب اولویت امتحان می‌شوند و خروج. .El .Pp .Nm ممکن است علاوه بر این، داده‌های پیکربندی را از یک فایل پیکربندی ویژه کاربر و یک فایل پیکربندی سراسری سیستم به دست آورد. قالب فایل و گزینه‌های پیکربندی در .Xr ssh_config 5 شرح داده شده است. .Sh "احراز هویت (AUTHENTICATION)" کلاینت OpenSSH SSH از نسخه ۲ پروتکل SSH پشتیبانی می‌کند. .Pp روش‌های موجود برای احراز هویت عبارتند از: احراز هویت مبتنی بر GSSAPI، احراز هویت مبتنی بر میزبان (host-based)، احراز هویت با کلید عمومی، احراز هویت تعاملی با صفحه‌کلید (keyboard-interactive)، و احراز هویت با گذرواژه (password). روش‌های احراز هویت به ترتیبی که در بالا مشخص شد آزمایش می‌شوند، هرچند .Cm PreferredAuthentications می‌تواند برای تغییر ترتیب پیش‌فرض استفاده شود. .Pp احراز هویت مبتنی بر میزبان به شرح زیر عمل می‌کند: اگر ماشینی که کاربر از آن وارد می‌شود در .Pa /etc/hosts.equiv یا .Pa /etc/ssh/shosts.equiv بر روی ماشین راه دور فهرست شده باشد، کاربر غیرریشه باشد و نام‌های کاربری در هر دو طرف یکسان باشند، یا اگر فایل‌های .Pa ~/.rhosts یا .Pa ~/.shosts در دایرکتوری خانگی کاربر در ماشین راه دور موجود باشند و حاوی خطی شامل نام ماشین کلاینت و نام کاربر روی آن ماشین باشند، کاربر برای ورود مورد پذیرش قرار می‌گیرد. علاوه بر این، سرور .Em باید قادر به تایید کلید میزبان کلاینت باشد (به توضیحات .Pa /etc/ssh/ssh_known_hosts و .Pa ~/.ssh/known_hosts در زیر مراجعه کنید) تا ورود مجاز شمرده شود. این روش احراز هویت رخنه‌های امنیتی ناشی از جعل IP، جعل DNS و جعل مسیریابی را می‌بندد. [یادداشت برای مدیر سیستم: .Pa /etc/hosts.equiv ، .Pa ~/.rhosts و پروتکل‌های rlogin/rsh به‌طور کلی ذاتاً ناامن هستند و در صورت نیاز به امنیت باید غیرفعال شوند.] .Pp احراز هویت با کلید عمومی به شرح زیر عمل می‌کند: این طرح مبتنی بر رمزنگاری کلید عمومی است، با استفاده از سامانه‌های رمزنگاری که در آن‌ها رمزگذاری و رمزگشایی با کلیدهای جداگانه صورت می‌گیرد، و استخراج کلید رمزگشایی از روی کلید رمزگذاری غیرممکن است. ایده این است که هر کاربر یک جفت‌کلید عمومی/خصوصی برای اهداف احراز هویت می‌سازد. سرور کلید عمومی را می‌داند و تنها کاربر از کلید خصوصی مطلع است. .Nm پروتکل احراز هویت با کلید عمومی را به صورت خودکار، با استفاده از یکی از الگوریتم‌های ECDSA، Ed25519 یا RSA پیاده‌سازی می‌کند. .Pp فایل .Pa ~/.ssh/authorized_keys کلیدهای عمومی مجاز برای ورود را فهرست می‌کند. هنگامی که کاربر وارد می‌شود، برنامه .Nm به سرور اعلام می‌کند که مایل است از کدام جفت‌کلید برای احراز هویت استفاده کند. کلاینت اثبات می‌کند که به کلید خصوصی دسترسی دارد و سرور بررسی می‌کند که کلید عمومی متناظر مجاز به پذیرش حساب باشد. .Pp سرور ممکن است پس از تکمیل احراز هویت با روشی دیگر، کلاینت را از خطاهایی که مانع از موفقیت احراز هویت با کلید عمومی شده‌اند مطلع سازد. این خطاها را می‌توان با افزایش .Cm LogLevel به .Cm DEBUG یا بالاتر مشاهده کرد (مثلاً با استفاده از فلگ .Fl v Ns ). .Pp کاربر جفت‌کلید خود را با اجرای .Xr ssh-keygen 1 تولید می‌کند. این دستور کلید خصوصی را در .Pa ~/.ssh/id_ecdsa (برای ECDSA)، .Pa ~/.ssh/id_ecdsa_sk (برای ECDSA میزبانی‌شده روی احراز هویت‌کننده سخت‌افزاری)، .Pa ~/.ssh/id_ed25519 (برای Ed25519)، .Pa ~/.ssh/id_ed25519_sk (برای Ed25519 میزبانی‌شده روی احراز هویت‌کننده سخت‌افزاری)، .Pa ~/.ssh/id_mldsa44_ed25519 (برای MLDSA44-ED25519)، یا .Pa ~/.ssh/id_rsa (برای RSA) ذخیره می‌کند و کلید عمومی را در .Pa ~/.ssh/id_ecdsa.pub (برای ECDSA)، .Pa ~/.ssh/id_ecdsa_sk.pub (برای ECDSA میزبانی‌شده روی احراز هویت‌کننده سخت‌افزاری)، .Pa ~/.ssh/id_ed25519.pub (برای Ed25519)، .Pa ~/.ssh/id_ed25519_sk.pub (برای Ed25519 میزبانی‌شده روی احراز هویت‌کننده سخت‌افزاری)، .Pa ~/.ssh/id_mldsa44_ed25519.pub (برای MLDSA44-ED25519)، یا .Pa ~/.ssh/id_rsa.pub (برای RSA) در دایرکتوری خانگی کاربر ذخیره می‌نماید. سپس کاربر باید کلید عمومی را در .Pa ~/.ssh/authorized_keys در دایرکتوری خانگی خود در ماشین راه دور رونوشت کند. فایل .Pa authorized_keys متناظر با فایل متداول .Pa ~/.rhosts است و دارای یک کلید در هر خط است، هرچند خطوط می‌توانند بسیار طولانی باشند. پس از این، کاربر می‌تواند بدون وارد کردن گذرواژه وارد شود. .Pp گونه‌ای دیگر از احراز هویت با کلید عمومی در قالب احراز هویت با گواهی‌نامه در دسترس است: به جای مجموعه‌ای از کلیدهای عمومی/خصوصی، از گواهی‌نامه‌های امضاشده استفاده می‌شود. این شیوه این مزیت را دارد که یک مرجع صدور گواهی‌نامه (CA) معتمد می‌تواند جایگزین تعداد زیادی از کلیدهای عمومی/خصوصی شود. برای اطلاعات بیشتر به بخش CERTIFICATES از .Xr ssh-keygen 1 مراجعه کنید. .Pp راحت‌ترین روش برای استفاده از احراز هویت با کلید عمومی یا گواهی‌نامه می‌تواند استفاده از یک عامل احراز هویت باشد. برای اطلاعات بیشتر .Xr ssh-agent 1 و (اختیاراً) دستورالعمل .Cm AddKeysToAgent در .Xr ssh_config 5 را ببینید. .Pp احراز هویت تعاملی با صفحه‌کلید (Keyboard-interactive) به شرح زیر کار می‌کند: سرور یک متن چالش .Pq Qq challenge دلخواه ارسال کرده و پاسخ را درخواست می‌کند، که ممکن است چند بار تکرار شود. نمونه‌هایی از احراز هویت تعاملی با صفحه‌کلید شامل احراز هویت .Bx (به .Xr login.conf 5 مراجعه کنید) و PAM (در برخی سیستم‌های غیر .Ox Ns ) است. .Pp در نهایت، اگر سایر روش‌های احراز هویت ناموفق باشند، .Nm از کاربر درخواست گذرواژه می‌کند. گذرواژه برای بررسی به میزبان راه دور ارسال می‌شود؛ با این حال، چون تمام ارتباطات رمزگذاری شده‌اند، گذرواژه توسط فردی که روی شبکه شنود می‌کند قابل مشاهده نیست. .Pp .Nm به‌طور خودکار پایگاه‌داده‌ای حاوی مشخصات شناسایی تمام میزبان‌هایی را که تا کنون با آن استفاده شده‌اند، نگهداری و بررسی می‌کند. کلیدهای میزبان در .Pa ~/.ssh/known_hosts در دایرکتوری خانگی کاربر ذخیره می‌شوند. علاوه بر این، فایل .Pa /etc/ssh/ssh_known_hosts به‌طور خودکار برای میزبان‌های شناخته‌شده بررسی می‌گردد. هر میزبان جدید به‌طور خودکار به فایل کاربر اضافه می‌شود. اگر هویت یک میزبان تغییر کند، .Nm درباره این موضوع هشدار می‌دهد و احراز هویت با گذرواژه را غیرفعال می‌کند تا از حملات جعل سرور یا مرد میانی (man-in-the-middle) جلوگیری شود، که در غیر این صورت می‌توانستند برای دور زدن رمزگذاری استفاده شوند. گزینه .Cm StrictHostKeyChecking می‌تواند برای کنترل ورود به ماشین‌هایی که کلید میزبان آن‌ها ناشناخته است یا تغییر کرده، استفاده شود. .Pp هنگامی که هویت کاربر توسط سرور پذیرفته شد، سرور یا دستور داده‌شده را در یک نشست غیرتعاملی اجرا می‌کند یا در صورتی که دستوری مشخص نشده باشد، به ماشین وارد شده و یک پوسته معمولی را به عنوان یک نشست تعاملی به کاربر ارائه می‌دهد. تمام ارتباطات با دستور یا پوسته راه دور به‌طور خودکار رمزگذاری خواهند شد. .Pp اگر یک نشست تعاملی درخواست شود، .Nm به‌طور پیش‌فرض تنها زمانی برای نشست‌های تعاملی پایانه مجازی (pty) درخواست می‌کند که کلاینت دارای یک پایانه باشد. فلگ‌های .Fl T و .Fl t می‌توانند برای تغییر این رفتار استفاده شوند. .Pp اگر یک پایانه مجازی تخصیص داده شده باشد، کاربر می‌تواند از نویسه‌های گریز ذکرشده در زیر استفاده کند. .Pp اگر پایانه مجازی تخصیص نیافته باشد، نشست شفاف است و می‌تواند برای انتقال مطمئن داده‌های باینری استفاده شود. در بیشتر سیستم‌ها، تنظیم نویسه گریز روی .Dq none نیز باعث می‌شود نشست حتی در صورت استفاده از tty شفاف باشد. .Pp نشست زمانی پایان می‌یابد که دستور یا پوسته در ماشین راه دور خارج شود و تمام اتصالات X11 و TCP بسته شده باشند. .Sh "نویسه‌های گریز (ESCAPE CHARACTERS)" هنگامی که یک پایانه مجازی درخواست شده باشد، .Nm از طریق استفاده از یک نویسه گریز از تعدادی قابلیت پشتیبانی می‌کند. .Pp یک نویسه مدک (tilde) منفرد می‌تواند به صورت .Ic ~~ یا با دنبال کردن مدک توسط نویسه‌ای غیر از موارد شرح داده شده در زیر ارسال شود. نویسه گریز همواره باید پس از یک خط جدید بیاید تا به عنوان یک نویسه خاص تفسیر شود. نویسه گریز را می‌توان در فایل‌های پیکربندی با استفاده از دستورالعمل پیکربندی .Cm EscapeChar یا در خط فرمان با گزینه .Fl e تغییر داد. .Pp گریزهای پشتیبانی‌شده (با فرض مقدار پیش‌فرض .Ql ~ Ns ) عبارتند از: .Bl -tag -width Ds .It Cm ~. قطع اتصال. .It Cm ~^Z فرستادن .Nm به پس‌زمینه. .It Cm ~# فهرست کردن اتصالات بازفرستاده‌شده. .It Cm ~& فرستادن .Nm به پس‌زمینه هنگام خروج از سیستم، حین انتظار برای پایان یافتن اتصال بازفرستاده‌شده یا نشست‌های X11. .It Cm ~? نمایش فهرستی از نویسه‌های گریز. .It Cm ~B ارسال یک سیگنال BREAK به سیستم راه دور (تنها در صورتی مفید است که طرف مقابل از آن پشتیبانی کند). .It Cm ~C باز کردن خط فرمان. در حال حاضر این مورد امکان افزودن بازفرستادن‌های درگاه را با استفاده از گزینه‌های .Fl L ، .Fl R و .Fl D فراهم می‌سازد (به بالا مراجعه کنید). همچنین لغو بازفرستادن‌های موجود درگاه را امکان‌پذیر می‌کند با .Sm off .Fl KL Oo Ar bind_address : Oc Ar port .Sm on برای محلی، .Sm off .Fl KR Oo Ar bind_address : Oc Ar port .Sm on برای راه دور و .Sm off .Fl KD Oo Ar bind_address : Oc Ar port .Sm on برای بازفرستادن‌های پویای درگاه. .Ic !\& Ns Ar command به کاربر اجازه می‌دهد تا در صورت فعال بودن گزینه .Ic PermitLocalCommand در .Xr ssh_config 5 Ns ، یک دستور محلی را اجرا کند. راهنمای اولیه با استفاده از گزینه .Fl h در دسترس است. .It Cm ~I نمایش اطلاعات درباره اتصال فعلی SSH. .It Cm ~R درخواست کلیدگذاری مجدد (rekeying) اتصال (تنها در صورتی مفید است که طرف مقابل از آن پشتیبانی کند). .It Cm ~V کاهش میزان پرحرفی .Pq Ic LogLevel هنگامی که خطاها در stderr نوشته می‌شوند. .It Cm ~v افزایش میزان پرحرفی .Pq Ic LogLevel هنگامی که خطاها در stderr نوشته می‌شوند. .El .Sh "بازفرستادن TCP (TCP FORWARDING)" بازفرستادن اتصالات دلخواه TCP بر روی یک کانال امن را می‌توان هم در خط فرمان و هم در یک فایل پیکربندی مشخص کرد. یک کاربرد محتمل بازفرستادن TCP، اتصال امن به یک سرور ایمیل است؛ کاربرد دیگر عبور از دیوار آتش (firewall) است. .Pp در مثال زیر، به رمزگذاری ارتباط برای یک کلاینت IRC می‌پردازیم، حتی اگر سرور IRC که به آن متصل می‌شود مستقیماً از ارتباط رمزگذاری‌شده پشتیبانی نکند. این شیوه به این صورت کار می‌کند: کاربر با استفاده از .Nm به میزبان راه دور متصل می‌شود و درگاه‌های مورد استفاده برای بازفرستادن اتصال را مشخص می‌نماید. پس از آن اجرای برنامه به صورت محلی امکان‌پذیر است، و .Nm اتصال به سرور راه دور را رمزگذاری و بازمی‌فرستد. .Pp مثال زیر یک نشست IRC را از کلاینت به یک سرور IRC در .Dq server.example.com تونل می‌کند، با نام مستعار .Dq pinky به کانال .Dq #users می‌پوندد و از درگاه استاندارد IRC یعنی ۶۶۶۷ استفاده می‌نماید: .Bd -literal -offset 4n $ ssh -f -L 6667:localhost:6667 server.example.com sleep 10 $ irc -c '#users' pinky IRC/127.0.0.1 .Ed .Pp گزینه .Fl f برنامه .Nm را به پس‌زمینه می‌برد و دستور راه دور .Dq sleep 10 مشخص شده است تا مدت زمانی (۱۰ ثانیه در این مثال) برای راه‌اندازی برنامه‌ای که قرار است از تونل استفاده کند در نظر گرفته شود. اگر هیچ اتصالی در مدت زمان مشخص‌شده برقرار نشود، .Nm خارج خواهد شد. .Sh "بازفرستادن X11 (X11 FORWARDING)" اگر متغیر .Cm ForwardX11 بر روی .Dq yes تنظیم شده باشد (یا به شرح گزینه‌های .Fl X ، .Fl x و .Fl Y در بالا مراجعه کنید) و کاربر از X11 استفاده کند (متغیر محیطی .Ev DISPLAY تنظیم شده باشد)، اتصال به نمایشگر X11 به‌طور خودکار به سمت راه دور بازفرستاده می‌شود، به گونه‌ای که هر برنامه X11 اجراشده از پوسته (یا دستور) از کانال رمزگذاری‌شده عبور می‌کند، و اتصال به سرور واقعی X از ماشین محلی برقرار می‌گردد. کاربر نباید به صورت دستی .Ev DISPLAY را تنظیم کند. بازفرستادن اتصالات X11 می‌تواند در خط فرمان یا در فایل‌های پیکربندی تنظیم شود. .Pp مقدار .Ev DISPLAY تنظیم‌شده توسط .Nm به ماشین سرور اشاره خواهد کرد، اما با یک شماره نمایشگر بزرگ‌تر از صفر. این روال عادی است، و به این دلیل رخ می‌دهد که .Nm یک سرور X به صورت پروکسی .Pq Dq proxy در ماشین سرور ایجاد می‌کند تا اتصالات را روی کانال رمزگذاری‌شده بازفرستد. .Pp .Nm همچنین به‌طور خودکار داده‌های Xauthority را در ماشین سرور برپا می‌کند. به این منظور، یک کوکی مجوز تصادفی تولید می‌کند، آن را در Xauthority روی سرور ذخیره می‌سازد، و بررسی می‌کند که هر اتصال بازفرستاده‌شده حاوی این کوکی باشد و هنگام باز شدن اتصال آن را با کوکی واقعی جایگزین می‌نماید. کوکی احراز هویت واقعی هرگز به ماشین سرور ارسال نمی‌شود (و هیچ کوکی به صورت متن خام فرستاده نمی‌شود). .Pp اگر متغیر .Cm ForwardAgent روی .Dq yes تنظیم شده باشد (یا شرح گزینه‌های .Fl A و .Fl a در بالا را ببینید) و کاربر از یک عامل احراز هویت استفاده کند، اتصال به عامل به‌طور خودکار به سمت راه دور بازفرستاده می‌شود. .Sh "اعتبارسنجی کلیدهای میزبان (VERIFYING HOST KEYS)" هنگام اتصال به یک سرور برای نخستین بار، یک اثر انگشت از کلید عمومی سرور به کاربر ارائه می‌شود (مگر اینکه گزینه .Cm StrictHostKeyChecking غیرفعال شده باشد). اثر انگشت را می‌توان با استفاده از .Xr ssh-keygen 1 تعیین کرد: .Pp .Dl $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key .Pp اگر اثر انگشت از قبل شناخته شده باشد، می‌توان آن را مطابقت داد و کلید را پذیرفت یا رد کرد. اگر فقط اثر انگشت‌های قدیمی (MD5) برای سرور در دسترس باشند، گزینه .Fl E در .Xr ssh-keygen 1 می‌تواند برای تنزل الگوریتم اثر انگشت جهت تطبیق استفاده شود. .Pp به دلیل دشواری مقایسه کلیدهای میزبان صرفاً با نگاه کردن به رشته‌های اثر انگشت، پشتیبانی از مقایسه چشمی و بصری کلیدهای میزبان نیز با استفاده از .Em هنر تصادفی .Pq Em random art وجود دارد. با تنظیم گزینه .Cm VisualHostKey روی .Dq yes ، یک تصویر اسکی (ASCII) کوچک در هر بار ورود به سرور نمایش داده می‌شود، چه نشست تعاملی باشد و چه نباشد. با یادگیری الگویی که یک سرور شناخته‌شده تولید می‌کند، کاربر در صورت نمایش یک الگوی کاملاً متفاوت می‌تواند به سادگی دریابد که کلید میزبان تغییر کرده است. اما از آنجا که این الگوها کاملاً غیرمبهم نیستند، الگویی که شبیه به الگوی به‌خاطرسپرده‌شده باشد تنها یک احتمال بالا از یکسان بودن کلید میزبان به دست می‌دهد، و اثبات تضمین‌شده‌ای نیست. .Pp برای دریافت فهرستی از اثر انگشت‌ها همراه با هنر تصادفی آن‌ها برای تمام میزبان‌های شناخته‌شده، خط فرمان زیر می‌تواند استفاده شود: .Pp .Dl $ ssh-keygen -lv -f ~/.ssh/known_hosts .Pp اگر اثر انگشت ناشناخته باشد، یک روش جایگزین برای اعتبارسنجی در دسترس است: اثر انگشت‌های SSH تاییدشده توسط DNS. یک رکورد منبع اضافی (RR)، به نام SSHFP، به فایل منطقه (zonefile) افزوده می‌شود و کلاینت متصل‌شونده قادر است اثر انگشت را با اثر انگشت کلید ارائه‌شده تطبیق دهد. .Pp در این مثال، ما در حال اتصال یک کلاینت به یک سرور در .Dq host.example.com هستیم. ابتدا باید رکوردهای منبع SSHFP به فایل منطقه برای host.example.com افزوده شوند: .Bd -literal -offset indent $ ssh-keygen -r host.example.com. .Ed .Pp خطوط خروجی باید به فایل منطقه اضافه شوند. برای بررسی اینکه آیا منطقه به پرس‌وجوهای اثر انگشت پاسخ می‌دهد: .Pp .Dl $ dig -t SSHFP host.example.com .Pp در نهایت کلاینت متصل می‌شود: .Bd -literal -offset indent $ ssh -o "VerifyHostKeyDNS ask" host.example.com [...] Matching host key fingerprint found in DNS. Are you sure you want to continue connecting (yes/no)? .Ed .Pp برای اطلاعات بیشتر گزینه .Cm VerifyHostKeyDNS را در .Xr ssh_config 5 ببینید. .Sh "شبکه‌های خصوصی مجازی مبتنی بر SSH (SSH-BASED VIRTUAL PRIVATE NETWORKS)" .Nm حاوی پشتیبانی از تونل‌سازی شبکه خصوصی مجازی (VPN) با استفاده از شبه‌دستگاه شبکه .Xr tun 4 است، که امکان پیوستن امن دو شبکه به یکدیگر را فراهم می‌کند. گزینه پیکربندی .Cm PermitTunnel در .Xr sshd_config 5 کنترل می‌کند که آیا سرور از این قابلیت پشتیبانی می‌کند یا خیر، و در چه سطحی (ترافیک لایه ۲ یا لایه ۳). .Pp مثال زیر شبکه کلاینت 10.0.50.0/24 را با استفاده از یک اتصال نقطه به نقطه از 10.1.1.1 به 10.1.1.2 به شبکه راه دور 10.0.99.0/24 متصل می‌سازد، به شرط آنکه سرور SSH در حال اجرا بر روی دروازه (gateway) شبکه راه دور در 192.168.1.15 این اجازه را بدهد. .Pp در سمت کلاینت: .Bd -literal -offset indent # ssh -f -w 0:1 192.168.1.15 true # ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252 # route add 10.0.99.0/24 10.1.1.2 .Ed .Pp در سمت سرور: .Bd -literal -offset indent # ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252 # route add 10.0.50.0/24 10.1.1.1 .Ed .Pp دسترسی کلاینت می‌تواند از طریق فایل .Pa /root/.ssh/authorized_keys (به زیر مراجعه کنید) و گزینه سرور .Cm PermitRootLogin با دقت بیشتری تنظیم شود. مدخل زیر اتصالات را بر روی دستگاه .Xr tun 4 شماره ۱ از کاربر .Dq jane و بر روی دستگاه تونل شماره ۲ از کاربر .Dq john مجاز می‌دارد، در صورتی که .Cm PermitRootLogin بر روی .Dq forced-commands-only تنظیم شده باشد: .Bd -literal -offset 2n tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john .Ed .Pp از آنجا که راه‌اندازی مبتنی بر SSH مستلزم بار اضافی (overhead) قابل توجهی است، ممکن است برای راه‌اندازی‌های موقت، مانند VPNهای بی‌سیم مناسب‌تر باشد. شبکه‌های خصوصی مجازی پایدارتر بهتر است توسط ابزارهایی مانند .Xr ipsecctl 8 و .Xr isakmpd 8 فراهم شوند. .Sh "محیط (ENVIRONMENT)" .Nm به‌طور معمول متغیرهای محیطی زیر را مقداردهی می‌کند: .Bl -tag -width "SSH_ORIGINAL_COMMAND" .It Ev DISPLAY متغیر .Ev DISPLAY محل سرور X11 را مشخص می‌کند. این متغیر به‌طور خودکار توسط .Nm تنظیم می‌شود تا به مقداری به شکل .Dq hostname:n اشاره کند، که در آن .Dq hostname نشان‌دهنده میزبانی است که پوسته در آن اجرا می‌شود و .Sq n یک عدد صحیح \*(Ge 1 است. .Nm از این مقدار ویژه برای بازفرستادن اتصالات X11 بر روی کانال امن استفاده می‌نماید. کاربر معمولاً نباید .Ev DISPLAY را به صراحت تنظیم کند، زیرا این کار اتصال X11 را ناامن خواهد ساخت (و کاربر را ملزم می‌کند تا کوکی‌های مجوز مورد نیاز را به صورت دستی کپی کند). .It Ev HOME روی مسیر دایرکتوری خانگی کاربر تنظیم می‌شود. .It Ev LOGNAME مترادفی برای .Ev USER Ns ؛ جهت سازگاری با سیستم‌هایی که از این متغیر استفاده می‌کنند تنظیم شده است. .It Ev MAIL روی مسیر صندوق پستی کاربر تنظیم می‌شود. .It Ev PATH روی .Ev PATH پیش‌فرض تنظیم می‌شود، همان‌گونه که هنگام کامپایل .Nm مشخص شده است. .It Ev SSH_ASKPASS اگر .Nm به عبارت عبور نیاز داشته باشد، در صورتی که از یک پایانه اجرا شده باشد آن را از پایانه فعلی می‌خواند. اگر .Nm پایانه‌ای مرتبط با خود نداشته باشد اما .Ev DISPLAY و .Ev SSH_ASKPASS تنظیم شده باشند، برنامه‌ای را که توسط .Ev SSH_ASKPASS مشخص شده اجرا کرده و یک پنجره X11 را برای خواندن عبارت عبور باز می‌کند. این قابلیت به ویژه هنگام فراخوانی .Nm از یک .Pa .xsession یا اسکریپت مرتبط بسیار سودمند است. (توجه داشته باشید که در برخی ماشین‌ها ممکن است لازم باشد ورودی از .Pa /dev/null هدایت شود تا این سازوکار عمل کند). .It Ev SSH_ASKPASS_REQUIRE امکان کنترل بیشتر بر استفاده از یک برنامه askpass را فراهم می‌سازد. اگر این متغیر روی .Dq never تنظیم شده باشد، آنگاه .Nm هرگز برای استفاده از آن تلاشی نخواهد کرد. اگر روی .Dq prefer تنظیم شده باشد، آنگاه .Nm هنگام درخواست گذرواژه‌ها، استفاده از برنامه askpass را به TTY ترجیح می‌دهد. در نهایت، اگر این متغیر روی .Dq force تنظیم شود، از برنامه askpass برای تمام ورودی‌های عبارت عبور، بدون توجه به تنظیم بودن .Ev DISPLAY استفاده خواهد شد. .It Ev SSH_AUTH_SOCK مسیر سوکت دامنه .Ux .Pq Ux Ns -domain را که برای برقراری ارتباط با عامل احراز هویت استفاده می‌شود، مشخص می‌کند. .It Ev SSH_CONNECTION طرف‌های کلاینت و سرورِ اتصال را مشخص می‌نماید. این متغیر حاوی چهار مقدار است که با فاصله جدا شده‌اند: نشانی IP کلاینت، شماره درگاه کلاینت، نشانی IP سرور و شماره درگاه سرور. .It Ev SSH_ORIGINAL_COMMAND این متغیر در صورتی که یک دستور اجباری اجرا شود، حاوی خط فرمان اصلی خواهد بود. می‌توان از آن برای استخراج آرگومان‌های اصلی استفاده کرد. .It Ev SSH_TTY روی نام tty (مسیر دستگاه) مرتبط با پوسته یا دستور فعلی تنظیم می‌شود. اگر نشست فعلی فاقد tty باشد، این متغیر مقداردهی نمی‌گردد. .It Ev SSH_TUNNEL به‌صورت اختیاری توسط .Xr sshd 8 تنظیم می‌شود تا در صورتی که بازفرستادن تونل توسط کلاینت درخواست شده باشد، حاوی نام‌های رابط‌های اختصاص‌یافته باشد. .It Ev SSH_USER_AUTH به‌صورت اختیاری توسط .Xr sshd 8 تنظیم می‌شود؛ این متغیر ممکن است حاوی نام مسیری به یک فایل باشد که روش‌های احراز هویت با موفقیت استفاده‌شده هنگام برقراری نشست را، به انضمام کلیدهای عمومی مورد استفاده، فهرست می‌کند. .It Ev TZ این متغیر در صورتی که در زمان راه‌اندازی دیمون تنظیم شده باشد، برای نشان دادن منطقه زمانی فعلی تنظیم می‌شود (یعنی دیمون مقدار را به اتصالات جدید منتقل می‌کند). .It Ev USER روی نام کاربری که وارد می‌شود تنظیم می‌گردد. .El .Pp علاوه بر این، .Nm فایل .Pa ~/.ssh/environment را می‌خواند و در صورتی که این فایل موجود باشد و کاربران مجاز به تغییر محیط خود باشند، خطوطی با ساختار .Dq VARNAME=value را به متغیرهای محیطی می‌افزاید. برای اطلاعات بیشتر، به گزینه .Cm PermitUserEnvironment در .Xr sshd_config 5 مراجعه کنید. .Sh "فایل‌ها (FILES)" .Bl -tag -width Ds -compact .It Pa ~/.rhosts این فایل برای احراز هویت مبتنی بر میزبان به کار می‌رود (به بالا مراجعه کنید). در برخی ماشین‌ها ممکن است لازم باشد این فایل در صورتی که دایرکتوری خانگی کاربر روی یک پارتیشن NFS قرار دارد، برای همگان قابل خواندن (world-readable) باشد، زیرا .Xr sshd 8 آن را با دسترسی ریشه (root) می‌خواند. علاوه بر این، مالکیت این فایل باید متعلق به خود کاربر باشد و نباید مجوز نوشتن برای افراد دیگر داشته باشد. مجوزهای توصیه‌شده برای اکثر ماشین‌ها خواندن/نوشتن برای کاربر است، بدون قابلیت دسترسی توسط دیگران. .Pp .It Pa ~/.shosts این فایل دقیقاً به همان روش .Pa .rhosts استفاده می‌شود، اما احراز هویت مبتنی بر میزبان را بدون دادن مجوز ورود با rlogin/rsh ممکن می‌سازد. .Pp .It Pa ~/.ssh/ این دایرکتوری محل پیش‌فرض برای کلیه اطلاعات پیکربندی و احراز هویت ویژه هر کاربر است. هیچ الزام عمومی برای مخفی نگه داشتن کل محتویات این دایرکتوری وجود ندارد، اما دسترسی‌های توصیه‌شده شامل خواندن/نوشتن/اجرا برای خود کاربر و عدم دسترسی توسط دیگران است. .Pp .It Pa ~/.ssh/authorized_keys کلیدهای عمومی (ECDSA، Ed25519، RSA) را که می‌توانند برای ورود با هویت این کاربر به کار روند، فهرست می‌کند. قالب این فایل در صفحه راهنمای .Xr sshd 8 شرح داده شده است. این فایل از حساسیت بالایی برخوردار نیست، اما مجوزهای توصیه‌شده خواندن/نوشتن برای کاربر و غیرقابل دسترس بودن برای دیگران است. .Pp .It Pa ~/.ssh/config این فایل پیکربندی اختصاصی کاربر است. قالب فایل و گزینه‌های پیکربندی در .Xr ssh_config 5 توصیف شده‌اند. به دلیل امکان سوءاستفاده، این فایل باید دسترسی‌های سخت‌گیرانه‌ای داشته باشد: خواندن/نوشتن برای کاربر و غیرقابل نوشتن برای دیگران. .Pp .It Pa ~/.ssh/environment شامل تعاریف اضافی برای متغیرهای محیطی است؛ به بخش .Sx "محیط (ENVIRONMENT)" در بالا رجوع فرمایید. .Pp .It Pa ~/.ssh/id_ecdsa .It Pa ~/.ssh/id_ecdsa_sk .It Pa ~/.ssh/id_ed25519 .It Pa ~/.ssh/id_ed25519_sk .It Pa ~/.ssh/id_mldsa44_ed25519 .It Pa ~/.ssh/id_rsa شامل کلید خصوصی برای احراز هویت است. این فایل‌ها حاوی داده‌های حساس هستند و باید توسط کاربر قابل خواندن باشند اما برای دیگران غیرقابل دسترس باشند (خواندن/نوشتن/اجرا). اگر یک فایل کلید خصوصی برای دیگران قابل دسترسی باشد، .Nm به سادگی آن را نادیده خواهد گرفت. می‌توان هنگام تولید کلید یک عبارت عبور تعیین کرد که برای رمزگذاری بخش حساس این فایل با استفاده از AES-128 به کار می‌رود. .Pp .It Pa ~/.ssh/id_ecdsa.pub .It Pa ~/.ssh/id_ecdsa_sk.pub .It Pa ~/.ssh/id_ed25519.pub .It Pa ~/.ssh/id_ed25519_sk.pub .It Pa ~/.ssh/id_mldsa44_ed25519.pub .It Pa ~/.ssh/id_rsa.pub شامل کلید عمومی برای احراز هویت است. این فایل‌ها حساس نیستند و می‌توانند (اما الزامی نیست) برای هر فردی قابل خواندن باشند. .Pp .It Pa ~/.ssh/known_hosts شامل فهرستی از کلیدهای میزبان برای تمام میزبان‌هایی است که کاربر به آن‌ها وارد شده و در فهرست سراسری سیستم از کلیدهای میزبان شناخته‌شده وجود ندارند. برای جزئیات بیشتر درباره قالب این فایل، .Xr sshd 8 را ببینید. .Pp .It Pa ~/.ssh/rc دستورات موجود در این فایل هنگامی که کاربر وارد سیستم می‌شود، دقیقاً پیش از شروع پوسته (یا دستور) کاربر، توسط .Nm اجرا می‌شوند. برای اطلاعات بیشتر به صفحه راهنمای .Xr sshd 8 مراجعه فرمایید. .Pp .It Pa /etc/hosts.equiv این فایل برای احراز هویت مبتنی بر میزبان است (به بالا مراجعه کنید). این فایل تنها باید توسط کاربر ریشه (root) قابل نوشتن باشد. .Pp .It Pa /etc/ssh/shosts.equiv این فایل دقیقاً به همان روش .Pa hosts.equiv استفاده می‌شود، اما احراز هویت مبتنی بر میزبان را بدون اجازه ورود از طریق rlogin/rsh فراهم می‌سازد. .Pp .It Pa /etc/ssh/ssh_config فایل پیکربندی سراسری سیستم. قالب فایل و گزینه‌های پیکربندی در .Xr ssh_config 5 شرح داده شده است. .Pp .It Pa /etc/ssh/ssh_host_ecdsa_key .It Pa /etc/ssh/ssh_host_ed25519_key .It Pa /etc/ssh/ssh_host_mldsa44_ed25519_key .It Pa /etc/ssh/ssh_host_rsa_key این فایل‌ها حاوی بخش‌های خصوصی از کلیدهای میزبان هستند و برای احراز هویت مبتنی بر میزبان به کار می‌روند. .Pp .It Pa /etc/ssh/ssh_known_hosts فهرست سراسری سیستم از کلیدهای شناخته‌شده میزبان. این فایل باید توسط مدیر سیستم آماده شود تا حاوی کلیدهای عمومی میزبانِ تمامی ماشین‌های سازمان باشد. این فایل باید برای همگان قابل خواندن باشد. برای جزئیات بیشتر پیرامون قالب این فایل .Xr sshd 8 را ببینید. .Pp .It Pa /etc/ssh/sshrc دستورات موجود در این فایل زمانی که کاربر وارد می‌شود، درست پیش از شروع پوسته (یا دستور) کاربر، توسط .Nm اجرا می‌گردند. برای اطلاعات بیشتر به صفحه راهنمای .Xr sshd 8 مراجعه کنید. .El .Sh "وضعیت خروج (EXIT STATUS)" .Nm با وضعیت خروج دستور راه دور یا در صورت بروز خطا با مقدار 255 خارج می‌شود. .Sh "همچنین ببینید (SEE ALSO)" .Xr scp 1 , .Xr sftp 1 , .Xr ssh-add 1 , .Xr ssh-agent 1 , .Xr ssh-keygen 1 , .Xr ssh-keyscan 1 , .Xr tun 4 , .Xr ssh_config 5 , .Xr ssh-keysign 8 , .Xr sshd 8 .Sh "استانداردها (STANDARDS)" .Rs .%A S. Lehtinen .%A C. Lonvick .%D January 2006 .%R RFC 4250 .%T The Secure Shell (SSH) Protocol Assigned Numbers .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D January 2006 .%R RFC 4251 .%T The Secure Shell (SSH) Protocol Architecture .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D January 2006 .%R RFC 4252 .%T The Secure Shell (SSH) Authentication Protocol .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D January 2006 .%R RFC 4253 .%T The Secure Shell (SSH) Transport Layer Protocol .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D January 2006 .%R RFC 4254 .%T The Secure Shell (SSH) Connection Protocol .Re .Pp .Rs .%A J. Schlyter .%A W. Griffin .%D January 2006 .%R RFC 4255 .%T Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints .Re .Pp .Rs .%A F. Cusack .%A M. Forssen .%D January 2006 .%R RFC 4256 .%T Generic Message Exchange Authentication for the Secure Shell Protocol (SSH) .Re .Pp .Rs .%A J. Galbraith .%A P. Remaker .%D January 2006 .%R RFC 4335 .%T The Secure Shell (SSH) Session Channel Break Extension .Re .Pp .Rs .%A M. Bellare .%A T. Kohno .%A C. Namprempre .%D January 2006 .%R RFC 4344 .%T The Secure Shell (SSH) Transport Layer Encryption Modes .Re .Pp .Rs .%A B. Harris .%D January 2006 .%R RFC 4345 .%T Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol .Re .Pp .Rs .%A M. Friedl .%A N. Provos .%A W. Simpson .%D March 2006 .%R RFC 4419 .%T Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol .Re .Pp .Rs .%A J. Galbraith .%A R. Thayer .%D November 2006 .%R RFC 4716 .%T The Secure Shell (SSH) Public Key File Format .Re .Pp .Rs .%A D. Stebila .%A J. Green .%D December 2009 .%R RFC 5656 .%T Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer .Re .Pp .Rs .%A A. Perrig .%A D. Song .%D 1999 .%O International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99) .%T Hash Visualization: a New Technique to improve Real-World Security .Re .Sh "نویسندگان (AUTHORS)" .An -nosplit OpenSSH مشتقی از نسخه اصلی و آزاد ssh 1.2.12 اثر .An Tatu Ylonen است. .An Aaron Campbell Ns ، .An Bob Beck Ns ، .An Markus Friedl Ns ، .An Niels Provos Ns ، .An Theo de Raadt و .An Dug Song اشکالات متعددی را برطرف ساختند، قابلیت‌های جدیدتر را بازگرداندند و OpenSSH را ایجاد کردند. .An Markus Friedl پشتیبانی از پروتکل SSH نسخه‌های ۱.۵ و ۲.۰ را ارائه و پیاده‌سازی کرد.