SSH چیست؛ نحوه کار و انواع آن

پروتکل SSH چیست. هنگام دسترسی به رایانه از طریق شبکه، مدیران سیستم به یک اتصال امن نیاز دارند تا از حملات سایبری مخرب مانند شناسایی رمز عبور پنهان شوند. از آنجایی که شبکه‌های بزرگ دارای نقص‌های امنیتی هستند، پروتکل‌های رمزگذاری مانند TLS/SSL، IPsec، S/MIME، PGP و SSH برای اطمینان از حفاظت لازم ضروری هستند. در این مقاله به شما خواهیم گفت پروتکل SSH چیست و در ادامه با عملکرد، اصطلاحات، موارد استفاده و انواع آن آشنا خواهیم شد.

SSH چیست

SSH چیست

SSH یک پروتکل شبکه محبوب است که به ما امکان می دهد از طریق یک شبکه ناامن مانند اینترنت به یک کامپیوتر یا سرور راه دور دسترسی داشته باشیم.
Secure Shell یا Secure Socket Shell یک پروتکل شبکه است. این پروتکل یک پروتکل لایه کاربردی است که در هفتمین مدل شبکه Open Systems Interconnection (OSI) قرار دارد. همچنین به مجموعه ابزارهایی اشاره دارد که پروتکل SSH را پیاده سازی می کنند.

همانطور که میدانید در این دنیای اپلیکیشن‌ها، کلان داده‌ها و دیجیتال، نمی‌توانید بدون خرید سرور و داشتن زیرساخت‌های محاسباتی پیشرفته و مدیریت سرور در صدر صنعت خود باقی بمانید. نقش اصلی آن پشتیبانی از همه برنامه‌های کاربردی و بار کاری حیاتی است که همه سازمان‌ها برای اجرای تجارت خود از آن‌ها استفاده می‌کنند.

سرور یک سیستم یا برنامه رایانه ای است که به رایانه‌ها یا برنامه‌های دیگر با داده یا عملکرد سرویس می‌دهد. جهت اطلاع از اینکه سرور چیست اینجا کلیک نمایید.

سرورها انواع محتلفی دارند اعم از سرورهای اختصاصی و مجازی و ابرها و… (جهت اطلاعات بیشتر در رابطه با اینکه مزایای سرور مجازی اینجا کلیک نمایید.) و میتوانند با سیستم عامل‌های یونیکس، لینوکس نظیر سنتوس (جهت اطلاع از اینکه centos چیست اینجا کلیک نمایید) و ویندوز و… ارائه شوند. همچنین امکان نصل انواع وب سرور‌ها اعم از nginx (جهت اطلاع از اینکه nginx چیست اینجا کلیک نمایید)، IIS ، آپاچی (جهت اطلاع از اینکه آپاچی چیست اینجا کلیک نمایید) و… روی سرور‌ها می‌باشد.

SSH برای اتصال به انواع سرورها اعم از سرور HP، سرور مجازی (جهت اطلاع از اینکه vps چیست اینجا کلیک نمایید.) ، سرور اختصاصی، و سرورهای مجازی و کلوکیشن های مستقر در دیتاسنترها (جهت اطلاعات بیشتر در مورد این که دیتاسنتر چیست کلیک نمایید.) استفاده میشود.

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

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

تاریخچه ‌SSH

تاریخچه ‌SSH

مخفف SSH مخفف “Secure Shell” است. پروتکل SSH به عنوان جایگزین ایمن برای پروتکل‌های راه دور ناامن برای سرورها طراحی شده است.  جهت اطلاعات بیشتر در مورد راهنمای خرید سرور مجازی و اختصاصی اینجا کلیک نمایید.

SSH توسط Tatu Ylönen در سال 1995 ایجاد شد. این پروتکل برای جلوگیری از حملات شناسایی رمز عبور در دانشگاه فناوری هلسینکی طراحی شده بود. اولین نسخه از پروتکل که اکنون SSH-1 نامیده می‌شود، برای جایگزینی پروتکل‌های ناامن مانند rsh، rlogin و Telnet طراحی شد و به عنوان یک نرم افزار رایگان شروع به کار کرد اما به زودی به نرم افزار اختصاصی تبدیل شد.

پس از اینکه SSH-1 Ylönen به یک ابزار محبوب در سراسر جهان تبدیل شد، گروه ضربت مهندسی اینترنت (IETF) گروهی را تشکیل داد که هدف آن ایجاد جانشین این پروتکل بود. در سال 2006، SSH-2 به یک استاندارد جدید تبدیل شد که دارای پیشرفت‌های امنیتی مانند تبادل کلید Diffie-Helman بود.

جامعه منبع باز OSSH، نسخه جدید پروتکل SSH بر اساس نسخه 1.2.12 SSH-1 را توسعه داد. توسعه‌دهندگان OpenBSD بعداً OSSH را برای ایجاد OpenSSH، محبوب‌ترین پیاده‌سازی SSH در جهان امروز، ایجاد کردند. در حال حاضر پشتیبانی از SSH-1 متوقف شده است.

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

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

Ssh از یک الگوی کلاینت-سرور استفاده می‌کند که در آن کلاینت‌ها و سرورها از طریق یک کانال امن با هم ارتباط برقرار می‌کنند.

پروتکل SSH دارای سه لایه است:

  •       لایه حمل و نقل: ارتباط امن بین سرور و مشتری را تضمین می‌کند، رمزگذاری/رمزگشایی داده‌ها را نظارت می‌کند و از یکپارچگی اتصال محافظت می‌کند. همچنین ذخیره و فشرده سازی داده‌ها را انجام می‌دهد.
  •       لایه احراز هویت: روال احراز هویت مشتری را انجام می‌دهد.
  •       لایه اتصال: کانال‌های ارتباطی را پس از احراز هویت مدیریت می‌کند.

SSH یک پروتکل مبتنی بر سرویس گیرنده-سرور است. این به این معنی است که این پروتکل به دستگاهی که درخواست اطلاعات یا خدمات (سرویس گیرنده) می‌کند اجازه می‌دهد تا به دستگاه دیگری (سرور) متصل شود.

هنگامی‌که یک کلاینت از طریق SSH به یک سرور متصل می‌شود، دستگاه سرور را می‌توان مانند یک کامپیوتر محلی کنترل کرد.

سرور دارای یک پورت TCP تعیین شده است که از طریق آن شبکه را نظارت می‌کند و منتظر می‌ماند تا کلاینت‌ها اتصال را اولیه کنند. قبل از اینکه یک کلاینت متصل شود و دستورات SSH را صادر کند، باید فرآیند احراز هویت را پشت سر بگذارد.

تکنیک‌های رمزگذاری در SSH

تکنیک‌های رمزگذاری در SSH

SSH از سه نوع رمزگذاری داده در جریان ارتباط بین ماشین‌ها استفاده می‌کند که عبارتند از:

رمزگذاری متقارن (Symmetric Encryption):

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

هر زمان که کلاینت و سرور در مورد اینکه کدام الگوریتم را برای یک جلسه SSH استفاده کنند مذاکره می‌کنند، همیشه اولین الگوریتم را در لیست مشتری که سرور پشتیبانی می‌کند، انتخاب می‌کنند.

رمزگذاری نامتقارن (Asymmetric Encryption):

زمانی که ماشین‌ها از دو کلید متفاوت (اما از نظر ریاضی مرتبط)، عمومی‌و خصوصی برای انجام رمزگذاری استفاده می‌کنند، داده‌ها به‌طور نامتقارن رمزگذاری می‌شوند. ماشین کلاینت که در راه اندازی رمزگذاری شرکت کرده است می‌تواند اطلاعات را با استفاده از کلید خصوصی رمزگشایی کند.

همچنین SSH از کلیدهای نامتقارن نیز برای مبادله کلیدهای متقارن استفاده می‌کند، مانند فرآیند احراز هویت کاربر.

هش کردن (Hashing):

SSH از هش برای تأیید اعتبار استفاده می‌کند. الگوریتم‌های درهم‌سازی که برای تولید هش در SSH استفاده می‌شوند، کد احراز هویت پیام (MAC) و کد احراز هویت هش پیام (HMAC) هستند.

یک الگوریتم هش از یک بسته داده برای ایجاد یک رشته هش منحصر به فرد استفاده می‌کند. دستگاه ارسال کننده بسته همیشه بسته را همراه با مقدار هش ارسال می‌کند.

ماشین دریافت کننده، الگوریتم مورد استفاده برای ایجاد هش را می‌شناسد و می‌تواند آن را روی داده‌ها اعمال کند. هدف این است که ببینیم آیا مقدار هش محاسبه شده یکسان خواهد بود یا خیر. اگر مقدار هش به دست آمده با هش فرستنده متفاوت باشد، داده‌ها در حین انتقال حذف می‌شوند.

چگونه SSH با این تکنیک‌های رمزگذاری کار می‌کند؟

چگونه SSH با این تکنیک‌های رمزگذاری کار می‌کند؟

Session Encryption Negotiation

به محض دریافت درخواست اتصال، سرور مجموعه ای از پروتکل‌های رمزگذاری پشتیبانی شده را برای مشتری ارسال می‌کند. سرور از کلید عمومی‌به عنوان روش احراز هویت استفاده می‌کند.

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

مشتری در اولین تلاش برای اتصال، کلید عمومی‌سرور را با کلید خصوصی ذخیره شده در سیستم خود مقایسه می‌کند. اگر کلیدها مطابقت داشته باشند، مشتری و سرور موافقت می‌کنند که از رمزگذاری متقارن برای برقراری ارتباط در طول جلسه SSH استفاده کنند. برای این منظور، آنها با استفاده از یک فرآیند رمزگذاری نامتقارن که از الگوریتم تبادل کلید Diffie-Hellman (DH) استفاده می‌کند، ارتباط برقرار می‌کنند.

الگوریتم DH ماشین‌ها را قادر می‌سازد تا با هم کار کنند و به طور ایمن یک کلید رمزنگاری را روی یک شبکه عمومی‌ایجاد کنند. برای تولید یک کلید، ماشین‌ها مراحل زیر را انجام می‌دهند:

ماشین‌ها روی دو عدد توافق دارند: یک مدول و یک عدد پایه. برای جلوگیری از رمزگشایی کلید توسط الگوریتمهای هک نظیر brute force، مدول انتخاب شده یک عدد اول حداقل 600 رقمی‌است.

ماشین‌ها به طور جداگانه یک عدد را انتخاب می‌کنند و آن را در معادله شامل دو عدد عمومی‌اعمال می‌کنند.

سرور و مشتری مقادیر محاسبه شده را مبادله می‌کنند.

اکنون هر ماشین با استفاده از نتیجه دریافتی از دیگری محاسبه ای را انجام می‌دهد.

با انجام مراحل بالا، هر دو ماشین با الگوریتم یکسان، کلید مخفی خود را محاسبه می‌کنند. در نهایت، سرور تلاش می‌کند تا کاربری را که درخواست دسترسی می‌کند، احراز هویت کند.

Authenticating the User

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

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

برای ایجاد یک جفت کلید SSH، ssh-keygen را در ترمینال تایپ کنید. در نتیجه، سیستم کلیدها را تولید و ذخیره می‌کند.

کاربردهای SSH

کاربردهای SSH (SSH Uses)

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

به دلیل سهولت استفاده، استحکام و ویژگی‌های متعدد، SSH را می‌توان در سناریوهای مختلف اعمال کرد.

این سناریوها عبارتند از:

  • اتصال به یک میزبان راه دور

اتصال به یک میزبان راه دور

هدف اصلی ssh هدایت اتصال به سرور با یک پورت یا آدرس IP خاص است. این کار به ما اجازه می دهد تا یک میزبان راه دور به طور مستقیم به برنامه های موجود در ماشین محلی قابل دسترسی داشته باشد ویا بالعکس.

  • تهیه نسخه پشتیبان، کپی و انعکاس فایل‌ها با استفاده از SFTP

تهیه نسخه پشتیبان، کپی و انعکاس فایل‌ها با استفاده از SFTP

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

  • نگاشت پورت مشتری به پورت سرور برای ایمن سازی TCP/IP و سایر پروتکل‌های شبکه

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

  • تونل سازی داده‌های حساس از طریق یک کانال امن

تونل سازی داده‌های حساس از طریق یک کانال امن

ssh تکنیکی است که کاربر را قادر می سازد تا یک تونل امن بین میزبان محلی و سرور راه دور ایجاد کند و امکان انتقال فایلها را فراهم می سازد.

  • استفاده از شبکه خصوصی مجازی

استفاده از شبکه خصوصی مجازی

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

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

چطور می‌توان از ssh استفاده کرد؟

چطور می‌توان از ssh استفاده کرد؟

اتصال به سرور SSH با استفاده از کلاینت SSH انجام می‌شود. در اکثر سیستم‌عامل‌های مبتنی بر یونیکس و یونیکس مانند دیمون و کلاینت از قبل نصب شده هستند. در این سیستم‌ها، سرویس گیرنده SSH در ترمینال موجود است.

برای اتصال به یک میزبان راه دور با استفاده از ترمینال، کاربر دستور ssh و سپس نام کاربری و آدرس سرور یا نام میزبان را صادر می‌کند:

ssh [username]@[server_ip_or_hostname]

ویندوز 10 سرویس گیرنده و سرور OpenSSH را از نسخه 1709 ارائه می‌دهد. در نسخه‌های قبلی ویندوز SSH به عنوان یک ویژگی ارائه نمی‌شد، بنابراین از ابزارهایی مانند PuTTY برای ایجاد یک اتصال SSH استفاده شد. PuTTY یک کلاینت SSH با رابط کاربری گرافیکی برای SSH و Telnet است.

کلام آخر

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

سوالات متداول

اتصالات SSH بیشتر برای ایمن سازی انواع مختلف ارتباطات بین یک ماشین محلی و یک میزبان راه دور استفاده شده است، از جمله:
  •       دسترسی ایمن از راه دور به منابع
  •       اجرای دستورات از راه دور
  •       ارائه وصله‌های نرم افزاری و به روز رسانی.
  •       انتقال فایل‌های تعاملی و خودکار
پورت پیش فرض برای اتصالات کلاینت SSH 22 است. برای تغییر این پیش فرض، یک شماره پورت بین 1024 و 32767 وارد کنید. پورت پیش فرض برای اتصالات کلاینت Telnet 23 است
SSH معمولاً از طریق TCP اجرا می‌شود. تنظیمات پیش‌فرض پروتکل SSH این است که برای اتصالات به درگاه TCP 22 گوش دهید.
SSH همه اتصالات را رمزگذاری و احراز هویت می‌کند. SSH به متخصصان IT و امنیت اطلاعات (infosec) مکانیزمی‌امن برای مدیریت کلاینت‌های SSH از راه دور ارائه می‌دهد. SSH به جای نیاز به احراز هویت رمز عبور برای راه اندازی ارتباط بین سرویس گیرنده و سرور SSH، خود دستگاه‌ها را احراز هویت می‌کند.
لایه انتقال SSH یک پروتکل انتقال امن و سطح پایین است. این رمزگذاری قوی، احراز هویت میزبان رمزنگاری و حفاظت از یکپارچگی را فراهم می‌کند. احراز هویت در این سطح پروتکل مبتنی بر میزبان است.
رتبه: 4.8 از 966 رأی

منبع : phoenixnap.com phoenixnap.com softwaretestinghelp.com nlyte.com europeanbusinessreview.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *