ssh چیست؟ آشنایی با 0 تا 100 پروتکل SSH

SSH چیست؟ آشنایی با ۰ تا ۱۰۰ پروتکل SSH

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

اگر کنجکاوید که بدانید «SSH چیست» بگذارید بگوییم که SSH همان چیزی است که به‌اندازهٔ یک رمز عبور ۶۱۷ کلمه‌ای برای شما و اتصالات‌تان امنیت می‌آورد. از طرفی به شما اجازه می‌دهد دسترسی آزادتری به اینترنت داشته باشید. همراه ما باشید تا همه چیز را دربارهٔ این مفهوم کاربردی بیاموزیم. 

SSH چیست؟

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

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

Shell در سرویس SSH چیست؟

 منظور از Shell برنامه‌ای است که برای ورود به یک کامپیوتر در شبکه و اجرای دستورات از راه دور و یا انتقال فایل بین دو دستگاه، استفاده می‌شود. بنابراین ضروری است که این برنامه احراز هویت قوی و ارتباطات ایمن را از طریق کانال‌های ناامن را فراهم کند.

 SSH به عنوان جایگزینی برای Telnet و سایر پوسته‌های راه دور ناامن (rlogin، rsh، rcp، و rdist) طراحی شده است که اطلاعات، به‌ویژه رمزهای عبور را به صورت متن ساده ارسال می‌کند و آن‌ها را مستعد تجزیه و تحلیل بسته می‌کند. رمزگذاری مورد استفاده توسط SSH برای ارائه محرمانه بودن و یکپارچگی داده‌ها در یک شبکه ناامن مانند اینترنت است.


پیشنهاد خواندن: TTFB چیست؟ راه های بهبود TTFB یا Time to First Byte


کاربردهای متداول SSH

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

  • اتصال امن بین سرور و کلاینت

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

با این قابلیت شما می‌توانید فایل‌ها و داده‌هایی را به‌صورت امن با مشتریان خود به اشتراک بگذارید.

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

نحوه کار پروتکل SSH چگونه است؟

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

تصویر زیر کمک می‌کند این پروسه را بهتر درک کنید:

 ارتباط کلاینت و سرور در پروتکل SSH

احراز هویت کاربران توسط SSH

وقتی از احراز هویت کاربر توسط SSH حرف می‌زنیم، منظورمان دقیقاً استفاده از کلید رمزنگاری است. حالا ssh key چیست؟ منظور از کلید یک رشته کاراکتر و عدد است. این کلید رمزنگاری دو مزیت اصلی دارد: بسیار امن‌تر و البته ساده‌تر و سریع‌تر از به‌خاطر سپردن و تایپ‌کردن رمز عبورهای طولانی است. 

این رمزنگاری و احراز هویت از طریق یک جفت کلید امن انجام می‌شود. یعنی کاربران برای احراز هویت بایستی کلیدهای عمومی و خصوصی را با استفاده از ابزارهای ساده‌ای مثل ssh-keygen و ssh-copy-id ایجاد کنند. 

  • کلید عمومی 

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

  • کلید خصوصی 

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


پیشنهاد خواندن: ‌CLS چیست؟ راه حل بهبود CLS یا Cumulative Layout Shift


تفاوت SSH و SSL چیست؟

احتمالاً تا به‌حال نام ‌SSL را نیز به‌عنوان یک پروتکل امن ارتباطی در وب شنیده‌اید؛ اما باید بدانید که دو پروتکل SSL و SSH در عین یکسان بودنِ وظیفهٔ انتقال امن داده‌، تفاوت‌های اساسی با یکدیگر دارند. 

اول از همه این که SSL مسئول برقراری امن ارتباط بین مرورگر و سرورهای سایتی که بازدید می‌کنید را برعهده دارد. در صورتی که ‌SSH ارتباط بین سرور و کلاینت را امن نگه می‌دارد. 

جدول مقایسه بین SSL و SSH

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

آشنایی با دیگر اصطلاحات SSH

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

کلید SSH چیست؟

اما منظور از کلید SSH یا SSH KEY چیست؟‌ به بیان ساده SSH KEY داده‌ای رمزنگاری شده با الگوریتم CIPHER است. بگذارید این‌طور بگویم که وقتی شما از پسورد ساده استفاده می‌کنید، امکان دارد کسی در میان راه وارد شود و رمزتان را بدزدد. اما وقتی کلید SSH را با این الگوریتم رمزنگاری می‌کنید، اگر رمز اصلی شما ABC باشد، در میان راه به‌صورت XYZ نشان داده می‌شود و در مقصد به‌حالت اولیه ABC برمی‌گردد. 

پورت SSH چیست؟

پورت یا درگاه SSH شما را به پیاده‌سازی این پروتکل هدایت می‌کند. هنگامی که دستور شروع ارتباط را اجرا می‌کنید، اتصال به طور پیش فرض از پورت شماره ۲۲ استفاده می‌کند. از آنجایی که شماره پورت SSH را می‌توان تغییر داد، در صورت در دسترس بودن، می‌توان هر شماره پورت دیگری را تنظیم کرد. مادامی‌که از شماره پورت پیش‌فرض ssh استفاده می‌کنید، هکرها به راحتی می‌توانند داده‌های انتقال یافته شما را هک کنند. بنابراین، اگر به ارتباط بسیار ایمن نیاز دارید، شماره پورت پیش‌فرض SSH را به آن تغییر دهید تا با حمله brute force مواجه نشوید.

سرور SSH چیست؟

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

SSH tunnel چیست؟

اگر با خواندن پاراگراف‌های بالا از خود پرسیده‌اید «پس ssh tunnel چیست؟» باید بگوییم که درواقع SSH Tunneling یا SSH Port Forwarding یعنی تمام برنامه‌های سرور یا دستگاه کلاینت رمزگذاری شود و از طریق یک کانال امن به دستگاه ریموت ارسال شود. 

نحوه تونل زدن با SSH در V2ray

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

پس از خرید سرور مجازی، سرویس‌دهنده اطلاعات زیر را در اختیارتان قرار می‌دهد:

  • نام‌کاربری
  • رمزعبور
  • پورت 
  • آدرس IP سرور 

این اطلاعات را ذخیره و نرم‌افزار V2ray را دانلود و نصب کنید. سپس:

۱. در نرم‌افزار V2ray روی منوی Servers گزینهٔ Add [socks] server را انتخاب کنید. 

تصویری از فضای نرم‌افزار V2ray

۲. در کادری که باز می‌شود، بایستی اطلاعات سرور خود را وارد کنید:

  •  قسمت Remark را با نام دلخواه خود پر کنید. 
  • در بخش Address آی‌پی سرور را وارد کنید. 
  • پورت را یکی از گزینه‌های ۲۲/۸۰ درج کنید. 
  • نام‌کاربری و رمز عبور سرور را در فیلدهای آخر درج کنید. 
فرم اطلاعات سرور

۳. با فشردن دکمهٔ ok سرور شما ثبت می‌شود. می‌توانید با کلیک راست و Start تونل زدن را شروع کنید. 


سوالات پرتکرار


۱. پروتکل ssh چیست؟

Secure Socket Shell پروتکل امنی برای ارتباط میان سرور و کلاینت است که با Tunnel زدن و رمزنگاری کار می‌کند. 

۲. V2ray چیست؟

V2Ray ابزاری تحت پروژه V است. Project V پروژه ای است که شامل مجموعه ای از ابزارها برای ساختن محیط های شبکه خاص است و V2Ray هسته اصلی آن است. هسته Project V با نام V2Ray مسئول پروتکل‌ها و ارتباطات شبکه است و برای دسترسی آزاد به اینترنت استفاده می‌شود. 

و اما آخرین توصیه‌ها دربارهٔ SSH 

با خواندن این مقاله دانستید که SSH چیست و چطور می‌شود برای تونل زدن و دسترسی به سرور از راه دور از آن استفاده کرد. اما اجازه بدهید بگوییم که اگر از داخل کشور به V2Ray وصل می‌شوید، پورت اصلی ۲۲ در SSH ممکن است شما را دچار مشکل کند. بنابراین اگر به اختلال در اتصال برخوردید، یادتان باشد که تغییر پورت ۲۲ را نیز امتحان کنید. اگر هنوز سوالی در ذهن دارید از بخش نظرات زیر همین پست از ما بپرسید و پاسخ بگیرید. اگر دربارهٔ SSH تجربهٔ مفیدی دارید، می‌توانید از همین بخش با سایر کاربران به اشتراک بگذارید. 

نعیمه نخعی

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

نظر شما راجع به این محتوا چیست؟

عضویت در خبرنامه لیموهاست

مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آخرین مطالب دسته بندی سرور

2 دیدگاه

  1. سلام وقت شما بخیر. ممنون از مقاله خوبتون. تا جایی که فهمیدم داشتن ssh و تنظیم پورت ssh برای عدم دسترسی هکر ها به پسوردها مهمه. این ssh رو شما روی سرور اعمال میکنید یا باید مدیر وبسایت این کار رو انجام بده.

    1. سلام، ممنون از شما که بهمون فیدبک دادین.
      SSH به‌طور پیش‌فرض روی تمام سرورهای لینوکسی فعاله.

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

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