(Secure Shell (SSH یک پروتکل شبکه رمزنگاری است که امکان برقراری ارتباط ایمن از طریق یک شبکه ناامن را فراهم میکند. این پروتکل برای جایگزینی پروتکلهای قدیمی ناامن، افزایش امنیت و حفظ حریم خصوصی در تمام سیستم عاملها ساخته شده است.
SSH مخفف Secure Shell است و به عنوان Secure Socket Shell نیز شناخته میشود. SSH یک پروتکل ارتباطی شبکه ایمن است. این پروتکل اصولاً توسط مدیران شبکه برای اتصال ایمن به دستگاههای راه دور مورد استفاده قرار میگیرد، اما SSH دارای ویژگیهای مشترک بسیاری است.
قبل از توسعه SSH، کاربران و مدیران از پروتکلهای شبکه ناامن مانند Telnet برای برقراری ارتباط با دستگاههای راه دور استفاده میکردند. این پروتکلهای قدیمی دیگر اطلاعات حیاتی مانند رمزهای عبور و اطلاعات ورود به سیستم را در متن ساده ارسال میکنند، و آنها را به عنوان هدفی آسان برای یک مهاجم تبدیل میکند.
SSH معمولاً از طریق پورت ۲۲ ارتباط برقرار می-کند.
دو نسخه از SSH وجود دارد. ما میگوییم “دو” چون بین ﺁن دو نسخه، تجهیزات و نسخههای بهروز زیادی وجود داشت که از SSH1 به SSH2 منتقل میشد.
همانطور که انتظار دارید، SSH2 پروتکل امنتری است. این پروتکل محافظت بهتری در برابر مهاجمان و شنوندگان شنود را فراهم میکند، از الگوریتمهای رمزگذاری قویتری پشتیبانی میکند و باعث بهبود کلی پروتکل SSH اصلی میشود.
OpenSSH یک اجرای منبع باز SSH است که به طور گسترده مورد استفاده قرار میگیرد. نسخه رایگان اصلی SSH توسط Tatu Ylönen ساخته شده است. نسخههای بعدی کارهای Ylönen اختصاصی بودند، به این معنی که مجوز و استفاده از آنها هزینه زیادی را در بردارد و شما نمیتوانید تغییرات غیرمجاز در پروتکل ایجاد کنید.
بنابراین، تیمی از توسعه دهندگان نسخه اصلی SSH را فورک کرده و آن را OpenSSH نامیدند، نسخهای که اکنون به عنوان بخشی از OpenBSD (یک سیستم عامل منبع باز) توسعه یافته است. همه سیستم عاملهای اصلی مانند ویندوز، macOS و توزیعهای متعدد لینوکس از OpenSSH پشتیبانی میکنند.
برای درک چگونگی عملکرد SSH، باید دو چیز را درک کنید. اول اینکه shell چیست؟ دوم رمزنگاری کلید عمومی (public-key cryptography) چگونه کار میکند؟ بیایید قبل از بررسی جزئیات اتصال SSH، دریابیم که shell چیست.
shell یک نرم افزار است که شما را قادر میسازد با سیستم عاملی که میزبان آن است ارتباط برقرار کنید. به طور معمول، شما از دستورات برای تعامل با shell استفاده میکنید، اگرچه رابطهای گرافیکی کاربر (GUI) وجود دارد.
یک نکته مهم که باید بدانید این است که برای استفاده از shell مجبور نیستید پشت کامپیوتر نشسته باشید. میتوانید shell ای را از راه دور بر روی اتصال شبکه با استفاده از SSH اداره کنید.
در محاسبات مدرن، دو نوع رمزگذاری اصلی وجود دارد:
SSH نوعی رمزنگاری با کلید عمومی است که از هر دو نوع رمزگذاری فوق برای ایجاد یک اتصال ایمن استفاده میکند. SSH از هر دو نوع رمزگذاری بالا برای ایجاد یک اتصال امن در مدل سرویس گیرنده-سرور (client-server) استفاده میکند. هنگامی که سرویس گیرنده سعی در ایجاد اتصال با سرور دارد، هر طرف پروتکلهای رمزگذاری خود را مخابره میکند.
پس از استقرار در یک پروتکل رمزگذاری منطبق، گیرنده و سرور از الگوریتم تبادل کلید Diffie-Hellman برای رسیدن به یک کلید رمزگذاری مشترک به عنوان بخشی از الگوریتم متقارن استفاده میکنند. این کلید رمزگذاری در کل ارتباطات به صورت مخفی باقی میماند و برای رمزگذاری تمام ارتباطات بین دو طرف استفاده میشود.
بنابراین، رمزگذاری نامتقارن از کجا مشخص میشود؟ در رمزنگاری کلید عمومی، شما دو کلید دارید: یک کلید عمومی و یک کلید خصوصی. میتوانید کلید عمومی را برای افراد دیگر ارسال کنید، در حالی که مالک فقط کلید خصوصی را میداند. با هم، آنها یک جفت تشکیل میدهند.
قبل از اینکه مبادله کلید متقارن انجام شود و کانال ارتباطی امن برقرار شود، SSH از رمزگذاری نامتقارن برای ایجاد یک جفت کلید موقتی استفاده میکند. گیرنده و سرور کلیدهای عمومی را رد و بدل میکنند و قبل از شروع فرآیند ایجاد کلید متقارن، یکدیگر را تأیید میکنند.
از آنجا که SSH از رمزگذاری متقارن برای ایمن کردن اتصال شما استفاده میکند، میتوانید SSH را برای استفاده از طیف گستردهای از الگوریتمهای رمزگذاری متقارن، از جمله AES Blowfish Twofish Salsa20 / ChaCha20 ۳DES IDEA و موارد دیگر پیکربندی کنید.
در حالی که هر دو SSH و SSL/TLS امنیت پروتکل شبکهای را که قبلاً ناامن بود را فراهم میکنند، SSH و SSL / TLS یکسان نیستند.
(Secure Sockets Layer (SSL و جانشین ﺁن،(Transport Layer Security (TLS، یک تونل ارتباطی رمزگذاری شده را فراهم میکنند. شما هر روز از TLS هنگام ارسال ایمیل یا مرور وب استفاده میکنید. SSL و TLS پروتکلهای لایهای هستند. در شبکههای ارتباطی اینترنتی، لایه کاربرد ارتباطات را برای خدمات کاربر نهایی استاندارد میکند.
در حالی که SSL/TLS و SSH رمزگذاری را فراهم میکنند، پروتکلهای شبکه برای موارد مختلفی طراحی شدهاند. SSL/TLS برای محافظت از اتصال داده شما طراحی شده است، در حالی که SSH برای دسترسی ایمن از راه دور و اجرای دستور طراحی شده است.
با این حال، با استفاده از پروتکل انتقال پرونده (SSH (SFTP یا پروتکل کپی امن (SCP)، میتوانید از SSH همراه با SSL برای انتقال پروندهها استفاده کنید. اتفاقاً استفاده از SCP تنها روشی است که میتوانید دادهها را از رایانه شخصی خود در Raspberry Pi کپی کنید.
مانند سوال بالا، (Virtual Private Network (VPN یک تونل رمزگذاری شده برای ارتباطات شما فراهم میکند. اما در جایی که SSH در پیکربندی سرویس گیرنده-سرور با رایانه خاصی اتصال ایمن ایجاد میکند، VPN یک اتصال ایمن بین رایانه شما و سرور VPN را فراهم میکند.
شما فرمانهای راه دور را در سرور VPN اجرا نمیکنید. در عوض، هنگامی که VPN خود را روشن میکنید، انتقال دادهها از طریق تونل رمز گذاری شده به سرور VPN قبل از “اتصال مجدد” به اینترنت گستردهتر، به و از طریق رایانه شما انجام میشود.
بنابراین، SSH اتصال ایمن به یک کامپیوتر را برای اجرای دستورات از راه دور امکانپذیر میکند، در حالی که VPN یک تونل رمزگذاری شده بین کامپیوتر شما و سرور VPN را امکانپذیر میکند.
این فرآیند میتواند مکان رایانه شما را پنهان کرده و در هنگام استفاده از اتصال به اینترنت، امنیت بیشتری ایجاد کند.
تا زمانی که سیستم عامل انتخابی شما دارای سرویس گیرنده SSH یا قابلیت SSH یکپارچه باشد، پروتکل شبکه امن در دسترس شما است.
SSH یک پروتکل شبکه ایمن و آسان برای استفاده فراهم میکند که به صورت آزاد در دسترس هر کاربر قرار دارد. در هر سیستم عامل کار میکند و در سطح جهانی یافت میشود. اکنون این راهنمای کوتاه SSH را خواندهاید، برای استفاده از آن در آینده بسیار آماده شدهاید.
منبع: MakeUseOf