مهمترین رسالت پروتکل SSH هم مثل همتای خود یعنی SSL، تامین امنیت است؛ تامین امنیت از طریق رمزنگاری اتصالات بین دستگاههای مختلف!
به جز این، SSH یک پروتکل برای مدیریت دستگاهها و سرورهای از راه دور هم است.
بگذارید اینطور بگوییم که SSH پروتکل و روشی است که بهاندازهٔ یک رمز عبور هزار کلمهای برای شما و اتصالاتتان امنیت میآورد! از طرفی هم به شما اجازه میدهد دسترسی آزادتری به اینترنت داشته باشید.
کمی پیچیده شد؛ ولی نگران نباشید! در ادامه مقاله، اول به زبان ساده توضیح میدهیم که SSH چیست، بعد هم سراغ باقی جزئیات میرویم و با کاربردها و نحوه کار آن آشنا میشویم.
اگر وقت و حوصله خواندن کامل این مقاله را ندارید، میتوانید ویدیوی زیر را تماشا کنید:
SSH چیست؟
کلمه SSH مخفف عبارت Secure Shell یا Secure Socket Shell است که ترجمه تحتالفظی آن میشود «پوسته امن»!
به زبان خیلی ساده، SSH یک پروتکل شبکه است که امکان اتصال امن به رایانهها و سرورها را برای مدیریت و کنترل از راه دور فراهم میکند. بهبیان دیگر، SSH برای کاربران، بهویژه مدیران سیستم، یک لایه امن برای دسترسی و ارسال دستورات به کامپیوتر از طریق یک شبکه ناامن ایجاد میکند.
این پروتکل، اغلب برای کنترل سرورها از راه دور، مدیریت زیرساختها و انتقال فایلها کاربرد دارد و برای تامین امنیت از رمزنگاری برای احراز هویت و اتصالات بین دستگاهها استفاده میکند.
در واقع SSH جایگزینی امن برای پروتکلهای قدیمیتر مثل Telnet و FTP (که از نظر ایمنی ضعیف هستند) است.
اجازه دهید یک مثال بزنیم تا بهتر متوجه شوید که پروتکل SSH چیست. فرض کنید شما یک برنامهنویس هستید که به سفر رفتهاید و به رایانه خودتان دسترسی ندارید، اما میخواهید روی کدی که روی کامپیوترتان در خانه دارید، کار کنید.
بدون استفاده از SSH شما مجبورید بدون هیچ لایه امنیتیای و از طریق اینترنت (که یک شبکه ناامن محسوب میشود) به کامپیوترتان وصل شوید. خب چون اتصال شما امن و رمزگذاریشده نیست، هکرها خیلی راحت میتوانند به اطلاعات شما (مثل رمزهای عبور) دسترسی پیدا کنند و آنها را بخوانند. در ضمن بدون SSH شما فقط میتوانید از طریق مرورگر وب به فایلها و برنامههایتان دسترسی داشته باشید.
اما با پروتکل SSH چطور؟
همانطور که گفتیم، وقتی از SSH استفاده کنید، یک پوسته امن (از طریق رمزگذاری اطلاعات ردوبدلی و اتصالات بین دستگاه شما و دستگاهی که در خانه دارید) به ارتباطات شما اضافه میشود و مثل این است که شما از طریق یک تونل امن در فضای ناامن اینترنت به دستگاهتان وصل شوید.
خب طبیعتاً وقتی اتصالتان امن و رمزنگاری شده باشد، محرمانه بودن و یکپارچگی دادهها در شبکه ناامنی مانند اینترنت حفظ میشود و کاری از هکرها برای رمزگشایی و فهمیدن آنها ساخته نیست؛ بنابراین میتوانید با امنیت کامل و حتی سرعت بیشتر به تمام فایلها، برنامهها و تنظیمات کامپیوترتان دسترسی داشته باشید.
خب! تا اینجا فهمیدیم SSH چیه و به چه کار میآید. در بخش بعدی بهطور جزئیتر به کاربردهای SSH میپردازیم.
پیشنهاد خواندنی: TTFB چیست؟ راه های بهبود TTFB یا Time to First Byte |
کاربردهای متداول SSH چیست؟
از نظر فنی و همان طور که توضیح دادیم، پروتکل SSH میتواند با تونلسازی و رمزنگاری دادهها، هر نوع دیتایی را از طریق یک شبکه امن انتقال دهد. با این حال، رایجترین موارد استفاده و کاربردهای SSH عبارتند از:
مدیریت از راه دور سرورها، زیرساختها و رایانههای کارکنان (برای مدیران)
انتقال ایمن فایلها (SSH امنتر از پروتکلهای رمزگذارینشدهای مثل FTP است)
دسترسی به خدمات در فضای ابری بدون قرار دادن پورتهای دستگاه محلی در معرض اینترنت
اتصال امن بین سرور و کلاینت در یک شبکه خصوصی
دور زدن محدودیتهای فایروال
نحوه کار پروتکل 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 بهعنوان یک پروتکل رمزنگاری شبکه از سمت کاربران نیز با 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 را انتخاب کنید.
۲. در کادری که باز میشود، بایستی اطلاعات سرور خود را وارد کنید:
- قسمت Remark را با نام دلخواه خود پر کنید.
- در بخش Address آیپی سرور را وارد کنید.
- پورت را یکی از گزینههای ۲۲/۸۰ درج کنید.
- نامکاربری و رمز عبور سرور را در فیلدهای آخر درج کنید.
۳. با فشردن دکمهٔ ok سرور شما ثبت میشود. میتوانید با کلیک راست و Start تونل زدن را شروع کنید.
سوالات پرتکرار
۱. پروتکل ssh چیست؟
Secure Socket Shell پروتکل امنی برای ارتباط میان سرور و کلاینت است که با Tunnel زدن و رمزنگاری کار میکند.
۲. V2ray چیست؟
V2Ray ابزاری تحت پروژه V است. Project V پروژه ای است که شامل مجموعه ای از ابزارها برای ساختن محیط های شبکه خاص است و V2Ray هسته اصلی آن است. هسته Project V با نام V2Ray مسئول پروتکلها و ارتباطات شبکه است و برای دسترسی آزاد به اینترنت استفاده میشود.
و اما آخرین توصیهها دربارهٔ SSH
با خواندن این مقاله دانستید که SSH چیست و چطور میشود برای تونل زدن و دسترسی به سرور از راه دور از آن استفاده کرد. اما اجازه بدهید بگوییم که اگر از داخل کشور به V2Ray وصل میشوید، پورت اصلی ۲۲ در SSH ممکن است شما را دچار مشکل کند. بنابراین اگر به اختلال در اتصال برخوردید، یادتان باشد که تغییر پورت ۲۲ را نیز امتحان کنید. اگر هنوز سوالی در ذهن دارید از بخش نظرات زیر همین پست از ما بپرسید و پاسخ بگیرید. اگر دربارهٔ SSH تجربهٔ مفیدی دارید، میتوانید از همین بخش با سایر کاربران به اشتراک بگذارید.
سلام وقت شما بخیر. ممنون از مقاله خوبتون. تا جایی که فهمیدم داشتن ssh و تنظیم پورت ssh برای عدم دسترسی هکر ها به پسوردها مهمه. این ssh رو شما روی سرور اعمال میکنید یا باید مدیر وبسایت این کار رو انجام بده.
سلام، ممنون از شما که بهمون فیدبک دادین.
SSH بهطور پیشفرض روی تمام سرورهای لینوکسی فعاله.