SSH چیست و نحوه استفاده از آن چطور است؟ + کاربردها
در این مقاله میخوانید
SSH چیست؟ SSH امکان ارتباط ایمن دو کامپیوتر را در شبکهی اینترنت فراهم میکند؛ این سادهترین و دمِ دستیترین پاسخی است که برای این سوال میتوان داد. پس از خرید سرور، برای اتصال به آن باید از پروتکل SSH استفاده کنید. افرادی هم که با سرور و هاست سروکار دارند، از این پروتکل برای ارتباط با سرور یا هاستشان استفاده میکنند. اما در مورد اینکه این پروتکل چه ویژگیهایی دارد و چطور میتوان از آن استفاده کرد، اطلاعات جامعی وجود دارد که ما در این مطلب از آموزش سرور بلاگ پارس پک سعی میکنیم به طور مفصلتری به آنها بپردازیم؛ پس تا انتها با ما همراه باشید.
SSH چیست؟ یک توضیح مختصر و مفید
SSH (Secure Shell) پروتکل استانداردی برای ارتباط بین دو کامپیوتر در شبکهی اینترنت است و با توجه به اینکه تمامی اطلاعات در این مسیر بهصورت رمزنگاری شده ردوبدل میشود، این پروتکل بهعنوان یکی از ایمنترین سیستمهای ارتباطی در شبکهی اینترنت محسوب میشود. همین موضوع باعث شده است SSH به یکی از مهمترین و ایمنترین پروتکلها برای ارتباط دو کامپیوتر در شبکهی اینترنت از سال ۱۹۹۵ تا کنون تبدیل شود.
تولدِ پروتکل SSH
پروتکل SSH در سال ۱۹۹۵ توسط «تاتو یلونن»، مهندس کامپیوتر اهلِ فنلاند طراحی شد. جالب است بدانید که این پروتکل هم مثلِ بیشتر تکنولوژیهای دنیا، بهدلیل یک نیاز ایجاد شده است. ماجرا از این قرار بود که یلونن وقتی در حال استفاده از تکنولوژی Telnet بود، متوجه شد که اطلاعاتش در حال سرقت شدن است و البته کاری هم از دستش بر نمیآمد؛ بهجز اینکه تکنولوژی SSH را ابداع کند!
اگر بپرسید که مهمترین ویژگی پروتکل SSH چیست، حتماً باید به مکانیسمِ احراز هویت آن اشاره کنیم. این مکانیسم از جفت کلید عمومی و خصوصی برای امنیت ارتباط استفاده میکند. کلید عمومی همان کلیدی است که میتواند به اشتراک گذاشته شود، اما کلید خصوصی همیشه باید محرمانه باقی بماند. بهعبارتِ دیگر، هنگام برقراری اتصال SSH، کلید عمومی با یک کلید خصوصی مطابقت داده میشود تا امنیت اطلاعاتِ در حال تبادل، تضمین شود؛ همان چیزی که یلونن در Telnet پیدا نکرد.
کاربرد SSH با توجه به امکانات زیادی که دارد، متفاوت است. مثلاً با استفاده از امکانِ تونلزنی SSH میتوانید ترافیک یک شبکهی غیررمزنگاری شده را ازطریق یک تونلِ امن SSH منتقل کنید. یا مثلاً با امکانِ پورت فورواردینگ میتوانید محدودیتهای احتمالی اینترنت را از بین ببرید؛ نمونهاش هم محدودیت اعمال شده از طرفِ وبسایتهای خرید و فروش ارزهای دیجیتال مثلِ بایننس یا حتی ابزارهای هوش مصنوعی مثل ChatGPT است.
نکته:
اگر هنوز نمیدانید که SSH چیست، این مثال ساده را در ذهنتان مجسم کنید: فرض کنید در حال رانندگی در یک اتوبانِ شلوغ هستید و اصلاً نمیخواهید کسی شما را بشناسد. اینجا یک لیموزینِ لاکچریِ شیشه دودی به دردتان میخورد. حالا اگر میخواهید همین لیموزین را در دنیای اینترنت داشته باشید، راهحل فقط SSH است و بس!
SSH چطور کار میکند؟
حالا بیایید ببینیم که SSH چطور کار میکند. فرایند نحوه کار SSH، در ۵ مرحله خلاصه میشود:
۱. احراز هویت (Authentication)
در این مرحله، کلاینت با استفاده از پروتکل SSH، اتصال به سرور را آغاز میکند. سپس سرور کلید عمومی خود را در اختیار کلاینت قرار میدهد تا فرایندِ تبادل کلید SSH آغاز شود.
۲. تبادل کلید SSH (Key Exchange)
در این مرحله، کلاینت یک کلید جلسه تصادفی ایجاد و آن را با کلید عمومی سرور رمزگذاری میکند. سپس سرور با استفاده از کلید خصوصیای که در اختیار دارد، کلید جلسه را رمزگشایی میکند. بدین ترتیب یک سیستم امنیتی بینِ کلاینت و سرور ایجاد میشود که برای رمزگذاریهایِ بعدی هم استفاده میشود.
۳. رمزگذاری (Encryption)
حالا هم کلاینت و هم سرور، از سیستم رمزگذاری ایجاد شده در طولِ جلسهی SSH استفاده میکنند. بدین ترتیب یک کانال امن برای انتقال دادهها فراهم میشود.
۴. تایید هویت کاربر (User Authentication)
بعد از اینکه کانال امنی برایِ ارتباط دادهها ایجاد شد، کلاینت باید هویت خود را برای سرور احراز کند. این کار با استفاده از روشهای مختلفی مثلِ رمز عبور، کلید عمومی و یا احراز هویت چند عاملی انجام میشود.
۵. دسترسی ریموت (Remote Access)
کار تقریباً تمام است! بعد از احراز هویت کلاینت، میتوانید از راهِ دور به سیستم دسترسی پیدا کنید. این دسترسی کاملاً امن است و با استفاده از همین ارتباط، میتوانید هر کاری را انجام دهید؛ چه انتقال فایل باشد و چه مدیریت سرور!
مزایا و معایب استفاده از SSH چیست؟
استفاده از پروتکل SSH مزایا و معایبی هم دارد که قبل از تصمیمگیری در مورد استفاده و یا استفاده نکردن از آن، باید اطلاعات کافی در این مورد داشته باشید:
مزایای استفاده از SSH
از جمله مهمترین مزایای SSH، میتوان به موارد زیر اشاره کرد:
۱. ارتباط ایمن
دلیل اصلی ابداع پروتکل SSH، ارتقای امنیت در ارتباطات اینترنتی بین دو کامپیوتر بود. اکنون میدانیم که SSH با رمزگذاری تمامی دادههای منتقلشده در شبکه، یک کانال امن در شبکههایی با امنیت نامشخص ایجاد میکند.
۲. ارتباط از راهِ دور
یکی دیگر از مزایای SSH که البته مثلِ قبلی، خیلی هم بدیهی است، امکان ارتباط دو کامپیوتر از راه دور است. در واقع پروتکل SSH بهعنوان پاسخی برای رفعِ این نیاز به دنیای تکنولوژی وارد شد.
۳. امکان استفاده از تونلزنی (Tunneling Capability)
یکی دیگر از امکانات SSH که میتوان از آن بهعنوانِ یکی از ویژگیهای این پروتکل نام برد، امکان تونلزنی است. با این قابلیت، مثلاً میتوان اطلاعات دیتابیس را از طریق یک سیستم تونلزنی پیشرفته منتقل کرد و دیگر نگران شنودِ غیرقانونی اطلاعات هم نبود.
۴. انعطافپذیری بالا
پروتکل SSH کاملاً انعطافپذیر است؛ این یعنی شما میتوانید از این پروتکل برای کارهای مختلفی استفاده کنید. مثلاً میتوانید از آن برایِ انتقال امن فایلها با استفاده از SCP یا SFTP، مدیریت سرور و هاست از راه دور و همچنین مدیریت سیستمهای شبکه استفاده کنید.
۵. روشهای احراز هویت قدرتمند
پروتکل SSH این امکان را دارد که از سیستمهای پیشرفتهای مثلِ کلید عمومی برای احراز هویت کلاینت استفاده کند. این سیستم احراز هویت بسیار قدرتمندتر از انواع دیگری مثل نام کاربری و رمز عبور است و به همین دلیل میتواند به شما سطح بسیار بالاتری از امنیت را ارائه دهد.
معایب استفاده از SSH
اما استفاده از پروتکل SSH مشکلاتی هم دارد. فعلاً اسمش را عیب نمیگذاریم؛ چون ممکن است این موارد برای بعضی کاربران حیاتی باشد و به مشکل تبدیل شود، اما برایِ برخی دیگر، مسئلهی چندان مهمی نباشد. به هر حال این شما هستید که بر اساس نیاز خود، باید تصمیم بگیرید که استفاده از این پروتکل به دردتان میخورد یا بهتر است بهدنبال راهکارِ جایگزین باشید:
۱. چالشِ مدیریت کلیدها
خودِ کلید SSH، اگر چه وجه مزیتِ این پروتکل نسبت به روشهای قبلی مثل Telnet است، اما بهخصوص اگر تعداد کلیدها زیاد باشد، میتواند به یک موضوعِ چالشبرانگیز تبدیل شود. شرایطی را در نظر بگیرید که به هر دلیل، یک کلید خصوصی فاش شود؛ مشخص است که دراینصورت، تقریباً هیچ اطلاعاتی از خطر دور نیست.
۲. پیکربندی پیچیده
اگر پیکربندی SSH را بهصورت صحیح و ایمن انجام ندهید، نه تنها امنیت بالایی را بهدست نخواهید آورد، بلکه حتی ممکن است با چالش جدی هم مواجه شوید. بنابراین بهتر است این کار را به دستِ کسی بسپارید که هم با این پروتکل آشنایی کاملی داشته باشد و هم تجربهی بالایی در استفاده از آن داشته باشد.
۳. تاثیر احتمالی روی سرعت سیستم
فرایندهای رمزگذاری و رمزگشایی میتواند سربارهای اضافی روی سیستم ایجاد کند. اگر چه این سربارها برای کارهای معمول و حتی پیشرفته، مشکل چندانی ایجاد نمیکند، اما برای کارهایی که نیاز به کانکشنهای پرسرعت دارند و یا بار روی سرور به اندازهی کافی زیاد است، اضافه شدن این بار ممکن است به کاهشِ عملکرد سرور منجر شود.
حالا که میدانیم SSH چیست و چه کاربردی دارد، حیف است در موردِ OpenSSH چیزی ندانیم!
OpenSSH چیست؟
OpenSSH نرمافزار متنباز و معروفی است که به شما این امکان را میدهد تا به سادهترین روشِ ممکن، از پروتکل SSH استفاده کنید. این نرمافزار، ابزارهای مختلفی دارد که مهمترین آنها عبارتاند از:
- SSH: این سرویس ابزار اصلیِ OpenSSH است که برای ایجاد یک کانکشن از راهِ دور مورد استفاده قرار میگیرد.
- SCP: از این ابزار برای انتقال فایلها بین دو کامپیوتر استفاده میشود.
- SFTP: اگر بخواهید فایلهای خود را با استفاده از پروتکل SFTP منتقل کنید، به این ابزار نیاز دارید.
- SSHFS: از این ابزار برای Mount کردنِ یک سیستم از راهِ دور بهعنوان یک سیستم محلی (Local) استفاده میشود.
تکنیکهای رمزگذاری در SSH چیست؟ یا بهعبارت دیگر، پروتکل SSH از چه سیستمهای رمزگذاری استفاده میکند؟
آیا میدانید VNC چیست و استفاده از آن چه مزایا و معایبی دارد؟ در مقاله زیر بخوانید.
تکنیکهای رمزگذاری SSH
اگر به مباحثِ امنیت شبکه و رمزنگاری دادهها علاقه دارید، شاید برایتان جالب باشد اگر بدانید که این پروتکل از سیستمهای رمزگذاری مختلفی برای ایمن نگاه داشتنِ ارتباط، استفاده میکند:
۱. رمزگذاری متقارن (Symmetric Encryption)
در رمزگذاری متقارن، دادهها با استفاده از یک کلید مشترک رمزگذاری و رمزگشایی میشوند. SSH برای رمزگذاری دادههای ارسالی و دریافتی در طول یک جلسه SSH از رمزگذاری متقارن استفاده میکند. این بدین معناست که هر دو طرف (کلاینت و سرور) باید به یک کلید متقارن دسترسی داشته باشند. الگوریتمهای رمزنگاری متقارن معروفی مانند AES ،DES ،3DES ،ChaCha20 و … توسط SSH استفاده میشوند.
۲. رمزگذاری نامتقارن (Asymmetric Encryption)
برای ایجاد کلیدهای متقارن که در بالا به آنها اشاره شد، از رمزگذاری نامتقارن استفاده میشود. در ابتدای هر اتصال SSH، یک جفت کلید عمومی/خصوصی استفاده میشود تا طی فرایندی به نام دستدادن (Handshake) یک کلید متقارن به اشتراک گذاشته شود. در این مرحله، کلید عمومی برای رمزگذاری دادههایی استفاده میشود که فقط میتوانند توسط کلید خصوصی متناظر رمزگشایی شوند.
۳. تبادل کلید (Key Exchange)
SSH قبل از شروع رمزگذاری متقارن باید یک کلید متقارن را به اشتراک بگذارد. این کلید از طریق الگوریتمهای تبادل کلیدی ایجاد میشود که میتوانند امنیت ارتباط را حتی در برابر هکرهایی که قادر به شنود ترافیک هستند (مانند حملات Man-in-the-Middle) هم تضمین کنند. از جمله الگوریتمهایی که در این فرایند استفاده میشود، میتوان به ECDH (Elliptic Curve Diffie-Hellman) یا DH (Diffie-Hellman) اشاره کرد.
تفاوت Telnet و SSH چیست؟
در این قسمت میخواهیم ببینیم که تفاوت Telnet و SSH چیست. واقعیت این است که تا قبل از اینکه تاتو یلونن با ابداعِ پروتکل SSH، خیالِ همهی ما را بابتِ ارتباط با یک کامپیوتر دیگر در بستر اینترنت کاملاً آسوده کند، این پروتکل Telnet بود که در این میدان یکهتازی میکرد. واضح است که مهمترین تفاوت این دو پروتکل، امنیتی است که اساساً در Telnet وجود نداشت. اما به هر حال، امنیت تنها چیزی نبود که از Telnet به SSH تفاوت کرده است. در جدول زیر به مهمترین تفاوت SSH و Telnet اشاره شده است:
ویژگی | Telnet | SSH |
نام کامل | Teletype Network | Secure Shell |
تاریخ انتشار | ۱۹۶۹ | ۱۹۹۵ |
امنیت | کم | زیاد |
احراز هویت | ساده | پیشرفته |
رمزگذاری | ندارد | دارد |
سرعت | سریع | سرعت کمتر |
کاربرد | فقط اتصال به سیستم از راه دور | اتصال به سیستم از راه دور، انتقال فایل، تونلزنی و … |
البته توجه داشته باشید که Telnet پروتکلی منسوخ شده است و دیگر کسی را پیدا نمیکنید که برای ارتباط با کامپیوتر از راه دور، از این پروتکل استفاده کند.
نحوه استفاده از SSH چگونه است؟
حالا به جذابترین قسمتِ این ماجرا، یعنی نحوهی استفاده از پروتکل SSH میرسیم. اولین نکتهای که باید بدانید این است که روش استفاده از این پروتکل، کاملاً بستگی به این دارد که از چه سیستمعاملی استفاده میکنید؛ منظورمان همان سیستمعاملی است که رویِ کامپیوتر شخصی خودتان دارید.
ابتدا با نحوه SSH زدن در ویندوز شروع میکنیم و بعد هم میرویم سراغِ سیستمعاملهای حرفهایتر و نحوه انجام این کار را در لینوکس و macOS توضیح میدهیم:
۱. چطور در ویندوز SSH بزنیم؟
بهترین راه برای SSH زدن در ویندوز، استفاده از نرمافزار PuTTY است. البته این روش اولین و آخرین روش نیست و بهجز PuTTY هیچ انتخابِ دیگری هم دارید؛ مسئله این است که این نرمافزار سالهاست امتحانش را پس داده است. پس پیشنهاد میکنیم شما هم بهدنبال ماجراجویی بیشتر در این زمینه نباشید!
بعد از اینکه PuTTY را دانلود و نصب کردید، آن را اجرا کنید. رابط کاربری این نرمافزار خیلی ساده است. تنها کاری که باید انجام دهید این است که IP سرور یا همان کامپیوتری که قصد دارید به آن متصل شوید را در کادرِ مشخص شده وارد کنید، پورت SSH را وارد کنید و بعد هم رویِ گزینهی Open کلیک کنید:
بعد از انجام این کار، یک پیغام به شما نشان داده میشود. البته این پیغامِ عجیب و غریبی نیست؛ PuTTY فقط میخواهد مطمئن شود که شما مطمئن هستید که میخواهید به همان سروری وصل شوید که آیپی و پورتش را در قسمت قبلی وارد کردید. روی Yes کلیک کنید:
حالا باید یک صفحه مثلِ شکل زیر را ببینید:
در این صفحه، ابتدا نام کاربری و بعد هم کلمهی عبور را وارد کنید. اگر این کار را درست انجام داده باشید، در خط پایانی ترمینال، بهصورت واضح میبینید که با نام کاربریتان به کامپیوتر موردنظر وصل شدهاید.
برای آشنایی با تفاوتها و ویژگیهای RDP و VNC مقاله زیر را از دست ندهید.
۲. چطور در لینوکس SSH بزنیم؟
حالا بیایید برویم سراغِ سیستمعاملِ عشقِ کُدها! اگر کسی از شما پرسید که راهِ SSH زدن لینوکس چیست، به احتمال بسیار زیاد، تا حالا لینوکس را حتی ندیده است! SSH با استفاده از ترمینال تمامی توزیعهای لینوکس، در دسترس شماست. تنها کاری که باید انجام دهید این است که دستورِ SSH را از طریق خط فرمان، فراخوانی کنید.
برای شروع، ترمینال را پیدا کنید و آن را باز کنید:
حالا باید دستور SSH را برایِ استفاده از پروتکل SSH، فراخوانی کنید. این دستور فرمت پیچیدهای ندارد. اگر نام کاربری شما pi و Hostname سرورتان هم smartipi باشد، دستوری که برای استفاده از این پروتکل باید در ترمینال وارد کنید، مشابه با نمونهی زیر است:
ssh [email protected]
بعد از وارد کردن این دستور، ممکن است پیغام خطایی با این مفهوم که کانکشن SSH شناخته شده نیست، به شما نشان داده شود. اگر با چنین پیغامی برخورد کردید، Yes را به نشانهی تایید بزنید:
در گام بعدی، باید رمز عبور حساب کاربریتان را وارد کنید. وقت کنید که حتی وقتی در حال تایپ رمز عبور هستید، چیزی را نمیبینید. وقتی وارد کردن رمز عبور تمام شد، Enter را فشار دهید تا عملیات به اتمام برسد:
۳. چطور در مک، SSH بزنیم؟
آخرین سیستمعاملی که میخواهیم نحوهی SSH زدن در آن را بررسی کنیم، سیستمعامل محبوبِ macOS است. با توجه به اینکه این سیستمعامل هم ترمینال اختصاصی دارد، نحوهی انجام کار در آن، تفاوت چندانی با سیستمعامل لینوکس ندارد. اولین کاری که برای استفاده از پروتکل SSH در سیستمعامل مک باید انجام دهید، باز کردن ترمینال است:
با انتخاب این گزینه، ترمینال در حالت آماده برای کار قرار خواهد گرفت:
حالا باید از دستورِ SSH در ترمینال استفاده کنید. فرمتِ این دستور هم مشابه با نمونهی زیر است:
ssh [email protected]
در این نمونه، فرض شده است که نام کاربری حساب شما، pi و آدرس Hostname سرورتان هم raspberrypi است. البته که بهجای این نام، میتوانید از آدرس IP سرور هم استفاده کنید.
بعد از وارد کردن این دستور، باید رمز عبور حساب کاربری را وارد کنید و بعد از آن هم اتصال شما به سرور برقرار میشود. همانطور که میبینید، دستوری که ما برای استفاده از پروتکل SSH در سیستمعامل مک وارد کردیم، شباهت بسیار زیادی با سیستمعامل لینوکس دارد.
با سرورهای لینوکس پارس پک، به دنیای سرعت و قدرت قدم بگذارید!
سرور، قلب تپنده هر کسبوکاری است. کیفیت مطلوب و عملکرد بینقص سرویس میزبانی، ضامنِ استحکام و پایداری زیرساخت کسبوکار آنلاین شما خواهد بود. سرور لینوکس پارسپک با بهرهمندی از منابع سختافزاری قدرتمند، یار و یاوری قابلاعتماد است تا با استفاده از قدرت و سرعت نرمافزاری و سختافزاری آن، دغدغهِ کندی در ارائه خدمات به کاربران را به خاطرهای دور تبدیل کنید.
جمعبندی
SSH چیست؟ SSH همان دروازهای است که ارتباط شما با سایر سیستمهای کامپیوتری را برقرار میکند. این پروتکل که به امنیت بالا شهرت دارد، اغلب برای اتصال به سرورهای مبتنی بر لینوکس به کار میرود. درحقیقت، این پروتکل از کلیدهای عمومی و خصوصی برای فراهمکردن ارتباطی امن بهره میبرد.
کاربران با استفاده از کلیدهای عمومی اطلاعات خود را موقع ارسال رمزنگاری میکنند و سپس در مقصد این اطلاعات با استفاده از کلیدهای خصوصی رمزگشایی میشوند. کلیدهای SSH برای نامهای کاربری و رمزهای عبور قدیمی جایگزین بسیار مناسبی بهشمار میروند.
در این مقاله از آموزش سرویسهای میزبانی بلاگ پارس پک، با نحوه کار و استفاده از SSH آشنا شدید. اگر در مورد این پروتکل کاربردی سوالی دارید، در بخش نظرات آن را با ما مطرح کنید تا در اسرع وقت به آن پاسخ دهیم.
سؤالات متداول
۱. SSH چیست؟
SSH به پروتکلی ایمن و رمزگذاری شده گفته میشود که برای ارتباط دو دستگاه کامپیوتر از راهِ دور و با استفاده از تکنولوژی اینترنت مورد استفاده قرار میگیرد.
۲. تفاوت Telnet و SSH چیست؟
Telnet پروتکل قدیمیتری است که برای ارتباط دستگاههای کامپیوتر از طریق اینترنت مورد استفاده قرار میگرفت. این پروتکل رمزگذاری شده و ایمن نبود و به همین دلیل با پروتکل SSH جایگزین شد.
۳. نحوه استفاده از SSH چگونه است؟
اگر از سیستمعامل ویندوز استفاده میکنید، برای استفاده از پروتکل SSH بهتر است از نرمافزارهای کمکی مثل PuTTY استفاده کنید. اگر هم از سیستمعامل لینوکس یا مک استفاده میکنید، با استفاده از ترمینال میتوانید از SSH استفاده کنید.
۴. پورت SSH چیست؟
پروتکل SSH از پورت شماره ۲۲ استفاده میکند.
۵. کلید SSH چیست؟
کلید SSH اعتبارنامهای برای دسترسی پروتکل شبکه (SSH (Secure Shell است. این پروتکل ایمن از احراز هویت رمزگذاریشده برای ارتباط از راه دور و بین ماشینها در شبکه باز ناامن بهره میبرد. SSH بهمنظور انتقال فایل از راه دور و مدیریت شبکه و دسترسی از راه دور به سیستمعامل استفاده میشود.
۶. OpenSSH چه کاربردهایی دارد؟
OpenSSH یک دیمون سرور را فراهم میکند و از ابزارهای کلاینت برای تسهیل عملیات کنترل از راه دور ایمن و رمزگذاریشده و انتقال فایل استفاده میکند و بهطور مؤثر جایگزین ابزارهای قدیمی میشود.