پوسته ایمن

**پوسته امن**  یا به اختصار اس‌اس‌اچ  یک پروتکل اینترنتی است که امکان تبادل اطلاعات با استفاده از یک کانال امن را بین دو دستگاه متصل در شبکه ایجاد می‌کند. دو نسخه اصلی این پروتکل به نام‌های SSH1 یا SSH-1 و SSH2 یا SSH-2 شناخته می‌شود. در ابتدا بر روی سیستم‌های مبتنی بر یونیکس و لینوکس برای دسترسی به حساب‌های پوسته (shell) استفاده شد، اس‌اس‌اچ جایگزنی برای تل‌نت (telnet) و سایر پوسته‌های ارتباط از راه دور غیر امن ایجاد شده‌است.

به عنوان یک تعریف بسیار ساده می‌توان SSH را این‌گونه بیان کرد که SSH یک روش قدرتمند و پر استفاده و البته نرم‌افزاری است که برای دستیابی به امنیت شبکه طراحی شده‌است؛ هربار که داده‌ای از طرف کامپیوتر به شبکه فرستاده می‌شود، به صورت خودکار توسط SSH رمزنگاری می‌شود. هنگامی که داده به مقصد خود می‌رسد به صورت خودکار رمزگشایی می‌شود. نتیجه‌ای که خواهد داشت کدگذاری نامرئی خواهد بود. بدین صورت کاربران نهایی درگیر پروسه کدگذاری و کدگشایی نخواهند شد و از ارتباط امن خود می‌توانند به خوبی استفاده کنند. امنیت سیستم کدگذاری SSH با استفاده از الگوریتم‌های پیچیده و مدرن تضمین می‌شود. تا آنجا که امروزه در سیستم‌های حیاتی و بسیار حساس از این سیستم استفاده می‌شود. به صورت معمول محصولاتی که از SSH استفاده می‌کنند از دو بخش کارخواه و کارساز (کلاینت/سرور) تشکیل می‌شوند. کارخواه با استفاده از تنظیمات کارساز مربوط به آن وصل می‌شوند و کارساز وظیفه تأیید هویت و قبول یا رد ارتباط را به عهده دارد.

تشابه نام Secure Shell با محیط‌هایی مانند Bourne shell یا C Shell نشان دهنده این نیست که SSH نیز محیطی است که وظیفه تفسیر فرمان‌ها برای سیستم‌عامل را بر عهده دارد.

با اینکه SSH تمامی مشکلات را حل نخواهد کرد، اما در مورد بسیاری از موارد می‌تواند راه حل مناسبی باشد. برخی از این موارد عبارتند از:
* یک پروتکل کارخواه/کارساز امن برای کدگذاری و انتقال داده‌ها در شبکه.
* تعیین هویت کاربران به وسیله کلمه عبور، host , public key یا استفاده از Kerberos,PGP یا PAM
* قابلیت امن کردن برنامه‌های نا امن شبکه مانند Telnet ,FTP و در کل هر برنامه های که بر اساس پروتکل TCP/IP بنا شده‌است.
* بدون هیچ تغییر در استفاده کاربر نهایی (End User) پیاده شده و قابلیت پیاده‌سازی بر روی بیشتر سیستم عامل‌ها را دارد.

## قابلیت‌های پروتکل SSH
مطمئناً در اختیار داشتن یک اتصال امن بین سرور و کلاینت قابلیت‌های فراوانی را در اختیار شخص قرار می‌دهد که برخی از متداول‌ترین کاربردهای SSH عبارتند از:
* تأیید کاربران از طریق متدهای مختلف
* ایجاد تونل امن برای اتصالات TCP/IP و همچنین اتصالات غیر امنی مانند IMPAP ضمن سازگاری کامل با فایروال
* انتقال خودکار (forward) اتصالات
* امکان تأیید خارجی کاربران با کمک Kerberos and SecurID
* انتقال فایل امن

## طریقه استفاده
SSH به طور معمول برای ورود به یک دستگاه از راه دور و اجرای دستورها استفاده می شود ، اما همچنین از تونل زنی ، ارسال پورت های TCP و اتصالات X11 نیز پشتیبانی می کند. این می تواند پرونده ها را با استفاده از پروتکل های انتقال فایل (SFTP) یا کپی ایمن (SCP) پروتکل ها انتقال دهد.

پورت TCP استاندارد 22 برای تماس با سرورهای SSH اختصاص داده شده است.

یک برنامه مشتری SSH معمولاً برای برقراری اتصالات به یک شبح SSH که پذیرش اتصالها از راه دور است ، استفاده می شود. هر دو معمولاً در بیشتر سیستم عاملهای مدرن از جمله macOS ، بیشتر توزیعهای لینوکس ، OpenBSD ، FreeBSD ، NetBSD ، Solaris و OpenVMS وجود دارند. قابل ذکر است که نسخه های ویندوز قبل از ویندوز 10 نسخه 1709 به طور پیش فرض شامل SSH نمی شوند. اختصاصی ، نرم‌افزار آزاد و منبع باز (به عنوان مثال PuTTY ، و نسخه OpenSSH که بخشی از Cygwin است) نسخه هایی از سطوح مختلف پیچیدگی و کامل وجود دارد. مدیران پرونده برای سیستم هایی مانند UNIX (به عنوان مثال Konqueror) می توانند از پروتکل FISH برای تهیه یک رابط کاربری گرافیکی با صفحه drag_and_drop استفاده کنند. برنامه ویندوز منبع باز WinSCP قابلیت مدیریت فایل مشابه (هماهنگ سازی ، کپی ، حذف از راه دور) را با استفاده از PuTTY به عنوان یک پس زمینه فراهم می کند. هر دو WinSCP و PuTTY بسته بندی شده اند تا بدون نیاز به نصب بر روی دستگاه مشتری مستقیماً از درایو USB خاموش شوند . راه‌اندازی یک سرور SSH در ویندوز به طور معمول مستلزم فعال کردن یک ویژگی در برنامه تنظیمات است. در ویندوز 10 نسخه 1709 یک درگاه رسمی Win32 از OpenSSH موجود است.SSH در محاسبات ابری برای حل مشکلات اتصال ، از اجتناب از مسائل امنیتی در معرض قرار دادن یک ماشین مجازی مبتنی برابر به طور مستقیم در اینترنت مهم است. یک تونل SSH می تواند از طریق فایروال به یک ماشین مجازی مسیری امن را از طریق اینترنت فراهم کند.

## کاربرد
SSH یک پروتکل است که می تواند برای بسیاری از برنامه ها در بسیاری از سیستم عامل ها از جمله اکثر انواع یونیکس (لینوکس ، BSD ها از جمله macOS اپل و Solaris) و همچنین مایکروسافت ویندوز مورد استفاده قرار گیرد. برخی از برنامه های زیر ممکن است به ویژگیهایی نیاز داشته باشند که فقط با سرویس دهنده ها یا سرورهای خاص SSH در دسترس یا سازگار باشند. به عنوان مثال ، استفاده از پروتکل SSH برای پیاده سازی VPN امکان پذیر است ، اما در حال حاضر فقط با سرور OpenSSH و پیاده سازی مشتری(کلاینت).

* برای ورود به پوسته(shell) روی میزبان از راه دور (جایگزین کردن Telnet و rlogin)
* برای اجرای یک دستور واحد بر روی یک میزبان از راه دور (جایگزینی rsh)
* برای تنظیم ورود خودکار (بدون پسورد) به یک سرور از راه دور (برای مثال با استفاده از OpenSSH )همراه با rsync برای تهیه نسخه پشتیبان ، کپی و آینه کردن پرونده ها به طور کارآمد و ایمن
* برای ارسال port
* برای تونل زدن (نباید با یک VPN اشتباه گرفته شود ، که بسته ها را بین شبکه های مختلف مسیریابی می کند ، یا دو دامنه پخش را به یکی وصل می کند)
* برای استفاده به عنوان یک VPN رمزگذاری شده تمام عیار. توجه داشته باشید که فقط سرور و مشتری OpenSSH از این ویژگی پشتیبانی می کند
* برای ارسال X از یک میزبان از راه دور ( از طریق میزبان چند واسط ای امکان پذیر است)
* برای مرور وب از طریق اتصال پراکسی رمزگذاری شده با مشتریهای SSH که از پروتکل SOCKS پشتیبانی می کنند
* برای نصب ایمن دایرکتوری روی یک سرور از راه دور به عنوان یک سیستم فایل بر روی یک کامپیوتر محلی با استفاده از SSHFS
* برای کنترل خودکار از راه دور و مدیریت سرورها از طریق یک یا چند مکانیزم مورد بحث در بالا
* برای توسعه در دستگاه همراه یا تعبیه شدن روی آن که از SSH پشتیبانی می کند

* برای ایمن سازی پروتکل های انتقال پرونده

### پروتکل های انتقال فایل
پروتکل های امینت پوسته (Secure Shell) در چندین مکانیسم انتقال فایل استفاده می شود:

* کپی ایمن (SCP) ، که از پروتکل RCP روی SSH تکامل یافته است
* rsync ، در نظر گرفته شده که از SCP کارآمد تر باشد. به طور کلی از طریق اتصال SSH کار می کند
* پروتکل انتقال فایل SSH ، یک جایگزین مطمئن برای FTP (نباید با FTP بیش از SSH یا FTPS اشتباه گرفته شود)
* پرونده های منتقل شده از پروتکل پوسته (a.k.a. FISH) ، منتشر شده در سال 1998 ، که از دستورها پوسته یونیکس بیش از SSH تکامل یافت
* پروتکل سریع و ایمن (FASP) ، با نام Aspera ، از SSH برای درگاه های کنترل و UDP برای انتقال داده استفاده می کند

## اصطلاحات SSH
* **SSH**: با حروف بزرگ به‌طور کلی به معنی پروتکل اینترنتی SSH است.
* **ssh**: با حروف کوچک به نرم‌افزار کلاینت سمت کاربر گفته می‌شود.
* **SSHD**: در واقع Daemon سرویس SSH در لینوکس است.
* **SSH1**: در واقع اولین ویرایش SSH است.
* **SSH2**: نسخه تجاری و غیر رایگان محصول شرکت Tectia است.
* **Open SSH**: نسخه متن‌باز Open-source یا آزاد SSH

## منابع

رده:پروتکل‌های اینترنت
رده:پروتکل‌های لایه کاربرد
رده:پوسته امن
رده:اختراع‌های فنلاندی