پروتکل SSH – ورود امن از راه دور و انتقال فایل

SSH که با نام‌های Secure Shell یا Secure Socket Shell نیز شناخته می‌شود، یک پروتکل شبکه است که به کاربران، به ویژه مدیران سیستم، راهی امن برای دسترسی به رایانه از طریق یک شبکه ناامن می‌دهد.

SSH همچنین به مجموعه ابزارهایی اشاره دارد که پروتکل SSH را پیاده سازی می کنند. پوسته امن یا Secure Shell احراز هویت رمز عبور قوی و احراز هویت کلید عمومی و همچنین ارتباطات داده رمزگذاری شده بین دو کامپیوتری که از طریق یک شبکه باز مانند اینترنت به هم متصل می شوند را فراهم می کند.

علاوه بر ارائه رمزگذاری قوی، SSH به طور گسترده توسط مدیران شبکه برای مدیریت سیستم ها و برنامه های کاربردی از راه دور استفاده می شود و آنها را قادر می سازد تا از طریق شبکه به رایانه دیگری وارد شوند، دستورات را اجرا کنند و فایل ها را از یک رایانه به رایانه دیگر منتقل کنند.



SSH هم به پروتکل شبکه رمزنگاری و هم به مجموعه ابزارهایی که آن پروتکل را پیاده سازی می کنند اشاره دارد. SSH از مدل کلاینت-سرور استفاده می کند و یک درخواست کلاینت  پوسته امن یا Shell Secure، که انتهای جلسه ای که نشان داده می‌شود را با یک سرور SSH که انتهای جلسه‌ای که اجرا می‌شود، متصل می‌کند.

SSH همچنین می تواند برای ایجاد تونل های امن برای سایر پروتکل های برنامه وب استفاده شود، به عنوان مثال، برای اجرای ایمن جلسات گرافیکی X Window System از راه دور. یک سرور SSH، به طور پیش‌فرض، به پورت ۲۲ پروتکل کنترل انتقال استاندارد (TCP) گوش می‌دهد.

SSH چگونه کار می کند؟

Secure Shell برای جایگزینی برنامه های شبیه سازی ترمینال ناامن یا ورود به سیستم، مانند Telnet، rlogin (ورود از راه دور) و rsh (پوسته از راه دور) ایجاد شد. SSH نیز همان عملکردها را فعال می کند مانند ورود به سیستم و اجرای جلسات ترمینال در سیستم های راه دور. SSH همچنین جایگزین برنامه های انتقال فایل مانند پروتکل انتقال فایل (FTP) و rcp (کپی از راه دور) می شود.

اساسی ترین کاربرد SSH اتصال به یک میزبان راه دور برای یک جلسه ترمینال است. شکل آن دستور به صورت زیر است:

ssh UserName@SSHserver.example.com

این کامند باعث می شود که کلاینت سعی کند با استفاده از شناسه کاربری UserName به سروری به نام server.example.com متصل شود. اگر این اولین بار است که در مورد اتصال بین میزبان محلی و سرور مذاکره می‌کنید، از کاربر خواسته می‌شود اثرانگشت کلید عمومی میزبان راه دور را دریافت کند و از او خواسته شود، علیرغم اینکه قبلاً اتصالی وجود نداشته است، متصل شود:

صحت میزبان ‘sample.ssh.com’ نمی تواند ثابت شود.
اثر انگشت کلید DSA 01:23:45:67:89:ab:cd:ef:ff:fe:dc:ba:98:76:54:32:10 است.
آیا مطمئن هستید که می خواهید به اتصال ادامه دهید (بله/خیر)؟
پاسخ مثبت به درخواست باعث ادامه جلسه می شود و کلید میزبان در فایل Know_hosts سیستم محلی ذخیره می شود. این یک فایل مخفی است که به طور پیش فرض در یک پوشه مخفی به نام /.ssh/known_hosts در فهرست اصلی کاربر ذخیره می شود.

هنگامی که کلید میزبان در فایل Known_hosts ذخیره شد، سیستم کلاینت می‌تواند مستقیماً بدون نیاز به هیچ گونه تأییدیه، مستقیماً به آن سرور متصل شود. کلید میزبان اتصال را تأیید می کند.

SSH برای چه مواردی استفاده می شود؟

SSH که در همه مراکز داده وجود دارد به طور پیش فرض با هر سرور یونیکس، لینوکس و مک ارسال می شود. اتصالات SSH برای ایمن سازی انواع مختلف ارتباطات بین یک ماشین محلی و یک میزبان راه دور، از جمله دسترسی ایمن از راه دور به منابع، اجرای دستورات از راه دور، تحویل پچ های نرم افزاری و به روز رسانی ها و سایر وظایف اداری یا مدیریتی استفاده شده است.

علاوه بر ایجاد یک کانال امن بین رایانه های محلی و راه دور، SSH برای مدیریت روترها، سخت افزار سرور، پلتفرم های مجازی سازی، سیستم عامل ها (OSes) و مدیریت داخلی سیستم ها و برنامه های کاربردی انتقال فایل استفاده می شود.

پوسته امن یا Secure Shell برای اتصال به سرورها، ایجاد تغییرات، انجام آپلود و خروج، یا با استفاده از ابزارها یا مستقیماً از طریق ترمینال استفاده می شود. کلیدهای SSH را می توان برای خودکارسازی دسترسی به سرورها استفاده کرد و اغلب در اسکریپت ها، سیستم های پشتیبان گیری و ابزارهای مدیریت پیکربندی استفاده می شود.

کلیدهای SSH که به گونه ای طراحی شده اند که کاربری راحتی داشته باشند و برای تمامی یک سازمان قابل اشتفاده باشد. کلیدهای SSH یک ورود به سیستم (SSO) را ارائه می دهند تا کاربران بتوانند هر بار بدون تایپ رمز عبور، بین حساب های اکانت خود جا به جا شوند.

 SSO :single sign-on

SSH در حالی که نقش های محوری در مدیریت هویت و دسترسی ایفا می کند، چیزی بیش از احراز هویت از طریق یک اتصال رمزگذاری شده انجام می دهد. تمام ترافیک SSH رمزگذاری شده است. چه کاربران در حال انتقال یک فایل، مرور وب یا اجرای یک فرمان باشند، اقدامات آنها محرمانه می باشد .



در حالی که امکان استفاده از SSH با شناسه کاربری و رمز عبور معمولی به عنوان اعتبار یا کرندیشال وجود دارد، SSH اغلب به جفت‌های کلید عمومی برای احراز هویت میزبان‌ها برای یکدیگر متکی است. تک تک کاربران هنوز باید از شناسه کاربری و رمز عبور خود ، یا سایر روش های احراز هویت ، برای اتصال به خود میزبان راه دور استفاده کنند، اما ماشین محلی و ماشین راه دور به طور جداگانه با یکدیگر احراز هویت می شوند. این با ایجاد یک جفت کلید عمومی منحصر به فرد برای هر میزبان در ارتباط انجام می شود. یک جلسه واحد به دو جفت کلید عمومی نیاز دارد: یک جفت کلید عمومی برای احراز هویت ماشین راه دور به ماشین محلی و یک جفت کلید عمومی دوم برای احراز هویت ماشین محلی به ماشین راه دور.

قابلیت های پوسته امن

توابعی که SSH فعال می کند شامل موارد زیر است:

دسترسی از راه دور ایمن به سیستم‌ها یا دستگاه‌های شبکه دارای SSH برای کاربران و همچنین فرآیندهای خودکار
جلسات انتقال فایل امن و تعاملی
انتقال خودکار و ایمن فایل
صدور ایمن دستورات در دستگاه ها یا سیستم های راه دور
مدیریت ایمن اجزای زیرساخت شبکه
SSH را می توان به صورت تعاملی برای فعال کردن جلسات ترمینال استفاده کرد و باید به جای برنامه Telnet کمتر امن استفاده شود. SSH همچنین معمولاً در اسکریپت ها و سایر نرم افزارها استفاده می شود تا برنامه ها و سیستم ها را برای دسترسی از راه دور و ایمن به داده ها و منابع دیگر قادر سازد.