| gtlssh(1) | General Commands Manual | gtlssh(1) |
نام (NAME)
gtlssh - برقراری ارتباط پوسته امن بر بستر TLS
خلاصه دستور (SYNOPSIS)
gtlssh [گزینهها] <host> [<program>]
یا
gsh [گزینهها] <host> [<program>]
توضیحات (DESCRIPTION)
برنامه gtlssh به یک سرور راه دور متصل میشود، سرور راه دور را با استفاده از SSL اعتبارسنجی میکند و سپس خود را در سرور احراز هویت مینماید.
دستور gsh یک مترادف برای gtlssh است که به طور پیشفرض در حالت سازگاری با ssh اجرا میشود.
دستور gtlsshd ابتدا تلاش میکند یک اتصال SCTP برقرار کند، و در صورت عدم موفقیت، به TCP بازمیگردد.
ترفندهای ویندوز (WINDOWS HACKS)
برای اطلاعات درباره پیکربندیهای خاص ویندوز، بخش «WINDOWS HACKS» در صفحه راهنمای gtlssh-keygen(1) را ببینید.
گزینهها (OPTIONS)
- -p|--port port
- استفاده از پورت دادهشده به جای پورت پیشفرض.
- -i|--keyfile file
- استفاده از فایل دادهشده برای کلید به جای فایل پیشفرض. اگر این مورد را مشخص کنید، فایل گواهی (certfile) نیز همان نام با پسوند .crt خواهد بود، مگر اینکه صریحاً آن را تعیین نمایید.
- --certfile file
- تنظیم گواهی مورد استفاده.
- --cadir directory
- تنظیم دایرکتوری حاوی مرجع صدور گواهی (CA) که برای اعتبارسنجی سرور استفاده میشود.
- -e|--escchar char
- مشخص کردن یک نویسه به عنوان نویسه گریز (escape character). تنظیم آن روی -1 نویسه گریز را غیرفعال میکند. این مقدار میتواند یک عدد دهدهی یا شانزدهشانزدهی یا نویسه کنترلی مانند ^x باشد. به طور پیشفرض، اگر io1 مقدار پیشفرض باشد و stdin یک tty باشد برابر با ^\ است، و در غیر این صورت غیرفعال خواهد بود. برای جزئیات بیشتر درباره نویسه گریز، بخش «نویسههای گریز (ESCAPES)» در ادامه را ببینید. فقط روی io1 مدیریت میشود.
- --ssh-compat
- فعالسازی پردازش دستور سازگار با ssh. به طور پیشفرض برای gsh فعال، و برای gtlssh غیرفعال است.
دستور gtlssh معمولاً با ارسال آرگومانهای مجزا به عنوان آرگومانهای جداگانه و سپس انتقال آنها به دستور راه دور به همان صورت عمل میکند. در حالت سازگاری با ssh، همانند ssh کار خواهد کرد و تمام آرگومانهای باقیمانده را با یک فاصله میان آنها ترکیب کرده و به عنوان یک دستور واحد ارسال مینماید.
نحوه مدیریت دستورات در gtlssh منطقیتر است؛ اگر دستور "gsh server ls '/a b'" را اجرا کنید، کاری را انجام میدهد که انتظار دارید. اما ssh چنین نمیکند. با این حال برخی برنامهها انتظار دارند که مانند ssh کار کند.
افزودهشده در gensio-3.0.4.
- --nossh-compat
- غیرفعال کردن پردازش دستور سازگار با ssh.
- -r|--telnet
- انجام پردازش telnet با مدیریت RFC2217.
- --nosctp
- غیرفعال کردن پشتیبانی از SCTP. به طور پیشفرض غیرفعال است.
- --sctp
- فعالسازی پشتیبانی از SCTP.
- --notcp
- غیرفعال کردن پشتیبانی از TCP.
- --transport <connecter>
- استفاده از اتصالدهنده دادهشده در gensio برای انتقال به جای استفاده از SCTP یا TCP. در این حالت، host الزامی است اما بخش نام میزبان نادیده گرفته میشود. این موضوع برای این است که در صورت نیاز بتوان نام کاربری را تنظیم کرد.
- -m|--mdns
- جستجوی نام با استفاده از mDNS. این گزینه نشانی IP (نسخه ۴ یا ۶)، شماره پورت و اینکه آیا telnet مورد نیاز است را واکشی کرده و اتصال را برقرار میکند.
- --mdns-type
- تنظیم نوع مورد استفاده برای جستجو. برای جزئیات در مورد نحوه استفاده از عبارات باقاعده (regex)، glob و غیره، به صفحه راهنمای gmdns(1) در بخش «STRING VALUES FOR QUERIES» مراجعه کنید.
- --nomux
- عدم استفاده از تسهیمکننده (mux) در gensio. این ممکن است باعث بروز مشکلاتی در gtlsshd شود، اما در برخی موارد برای ارتباط با ser2net بدون پشتیبانی از mux مفید است.
- --nointeractive
- عدم ورود تعاملی، مناسب برای اسکریپتها و برنامهها. برای رمز عبور درخواستی مطرح نمیکند و عملیات تعاملی دیگری انجام نمیدهد.
- --nointeractive-pw
- در صورت تنظیم بودن nointeractive، اجازه میدهد درخواست رمز عبور روی کنسول نمایش داده شود. شما تنها یک بار فرصت دارید رمز عبور را به درستی وارد کنید.
- --privileged
- هنگام ورود به یک سرور ویندوزی، اختیارات یک حساب دارای امتیاز را کاهش ندهد. در حالت عادی، شما وارد سیستم شده و به عنوان یک کاربر عادی اجرا میشوید (با یک توکن پیوندیافته دارای امتیاز)، این گزینه به شما امکان میدهد مستقیماً با دسترسی دارای امتیاز اجرا شوید. نیازمند تنظیم --allow-root در سمت سرور است.
- -L <accept addr>:<connect addr>
- شنود روی <accept addr> در ماشین محلی، و در صورت برقراری اتصال، فوروارد کردن آن به <connect addr> از ماشین راه دور روی اتصال gtlssh. یک آدرس محلی به فرمت [<bind addr>:][sctp|tcp,]port یا <unix socket path> است. آدرسهای راه دور به فرمت <hostname>:[sctp|tcp,]port یا <unix socket path> هستند. اگر نامی با '/' شروع شود، یک مسیر سوکت یونیکس است. <hostname> و <bindaddr> نامها یا آدرسهای استاندارد اینترنتی هستند.
- -R <accept addr>:<connect addr>
- مشابه -L، با این تفاوت که <accept addr> روی ماشین راه دور قرار دارد و اتصال به <connect addr> از ماشین محلی انجام میشود.
- -4
- فقط استفاده از IPv4.
- -6
- فقط استفاده از IPv6.
- -d|--debug
- تولید خروجی اشکالزدایی. مشخص کردن بیش از یک بار، میزان خروجی را افزایش میدهد.
- --version
- چاپ شماره نسخه و خروج.
- -h|--help
- نمایش خروجی راهنما.
احراز هویت میزبان (HOST AUTHENTICATION)
پس از اتصال، ابتدا میزبان با استفاده از SSL استاندارد اعتبارسنجی میشود. کلیدهای مورد استفاده برای اعتبارسنجی به طور پیشفرض در مسیر $HOME/.gtlssh/server_certs قرار دارند. اگر کلید دادهشده شناسایی نشود، اثر انگشت گواهی به کاربر نمایش داده میشود و از او پرسیده میشود که آیا مایل به پذیرش گواهی است یا خیر.
اگر کاربر گواهی را بپذیرد، به دایرکتوری پیشفرض اضافه میشود. در غیر این صورت، اتصال قطع خواهد شد.
گواهیها به صورت "<hostname>,<port>.crt" و "<ipaddress>,<port>.crt" ذخیره میشوند. هر دو مورد برای یک اتصال ایجاد میشوند (مگر اینکه اتصال با آدرس IP برقرار شده باشد). یک اتصال با تطابق هر دو ورودی تأیید میشود؛ اگر گواهی موجود در فایل با گواهی سمت راه دور مطابقت نداشته باشد، اتصال قطع شده و به کاربر اطلاع داده میشود.
احراز هویت کاربر (USER AUTHENTICATION)
در صورت موفقیتآمیز بودن احراز هویت میزبان، gtlssh خود را با یک کلید و گواهی احراز هویت میکند. این فایلها به طور پیشفرض از مسیر $HOME/.gtlssh/keycerts به شکل <host>[,<port>].key و <host>[,<port>].crt واکشی میشوند. اگر فایلی با فرمت حاوی میزبان و پورت وجود داشته باشد، همان انتخاب میشود. در غیر این صورت اگر فرمت تنها با نام میزبان موجود باشد، انتخاب خواهد شد. در غیر این صورت، به طور پیشفرض به $HOME/.gtlssh/default.key و $HOME/.gtlssh/default.crt رجوع میشود.
سمت راه دور گواهی را در مسیر $HOME/.gtlssh/allowed_certs جستجو میکند. اگر سمت راه دور گواهی ارائهشده را نداشته باشد، احراز هویت با رمز عبور امتحان میشود.
حالت تعاملی (INTERACTIVE MODE)
اگر ورودی استاندارد (stdin) برای gtlssh یک tty باشد و هیچ برنامهای برای اجرا مشخص نشده باشد، ورود به صورت یک ورود تعاملی خواهد بود. هرگونه تاخیر در پردازش I/O غیرفعال میشود، ترمینال محلی برای I/O مورد استفاده قرار گرفته و در حالت خام (raw mode) قرار میگیرد.
در حالت غیرتعاملی، سمت محلی از stdio برای I/O محلی استفاده میکند و تاخیر پردازش I/O در سمت شبکه غیرفعال نمیشود. این حالت برای برنامههایی که دادهها را از طریق اتصال منتقل میکنند مفید است.
نویسههای گریز (ESCAPES)
اگر نویسه گریز از کاربر دریافت شود، نویسه منتقل نمیشود و برنامه منتظر نویسه دیگری میماند. اگر نویسه دیگر نیز همان نویسه گریز باشد، یک تکنویسه گریز ارسال میشود. اگر نویسه دیگر به عنوان یک گریز معتبر شناخته نشود، نادیده گرفته شده و منتقل نمیشود. حروف بزرگ و کوچک یکسان در نظر گرفته میشوند.
نویسههای گریز عبارتند از:
- q
- خروج از برنامه.
- b
- ارسال یک سیگنال وقفه (break) به io2. در صورتی که io2 از وقفه پشتیبانی نکند نادیده گرفته میشود.
- d
- تخلیه دادههای سریال برای io2. در صورتی که io2 قابلیت RFC2217 نداشته باشد نادیده گرفته میشود.
- s
- تنظیم نرخ باود پورت سریال برای io2. در صورتی که io2 قابلیت RFC2217 نداشته باشد نادیده گرفته میشود. پس از این، سرعت پورت سریال باید تایپ شده و با یک خط جدید خاتمه یابد. سرعتهای نامعتبر نادیده گرفته میشوند، برای اینکه بدانید آیا به درستی تنظیم شده از escchar-d استفاده کنید.
- n, o, e
- تنظیم توازن در io2 روی none، odd یا even. در صورتی که io2 قابلیت RFC2217 نداشته باشد نادیده گرفته میشود.
- 7, 8
- تنظیم اندازه داده در io2 روی ۷ یا ۸ بیت. در صورتی که io2 قابلیت RFC2217 نداشته باشد نادیده گرفته میشود.
- 1, 2
- تنظیم تعداد بیتهای توقف در io2 روی ۱ یا ۲ بیت. در صورتی که io2 قابلیت RFC2217 نداشته باشد نادیده گرفته میشود.
همچنین ببینید (SEE ALSO)
gensio(5), gtlsshd(1), gtlssh-keygen(1), gmdns(1)
مشکلات شناختهشده (KNOWN PROBLEMS)
هیچ موردی گزارش نشده است.
نویسنده (AUTHOR)
Corey Minyard <minyard@acm.org>
| 01/02/19 | Shell connection over TLS |