فرض کنید شما یک توسعهدهنده نرمافزار هستید و میخواهید از راه دور به سرور ابری شرکت خود متصل شوید تا بتوانید برخی از فایلهای وبسایت را ویرایش کنید و تنظیمات مورد نیاز را بهروزرسانی نمایید. این همان کاری است که SSH انجام میدهد. با استفاده از SSH، میتوانید از طریق شبکه به صورت ایمن به سرور متصل شوید و با خط فرمان به آن دسترسی داشته باشید. در این مقاله، به بررسی مفهوم SSH، کاربردها، مزایا و نحوه استفاده از آن خواهیم پرداخت.
پروتکل SSH چیست؟
یک پروتکل طراحی شده برای برقراری اتصال امن میان کاربر (Client) و سرور (Server) می باشد. SSH یا پروتکل Secure Shell، مانند یک کلید امن برای دسترسی به دستگاه یا سروری است که از شما دور است. این پروتکل از رمزنگاری بهعنوان روش اصلی برای محافظت از دادههای شما در هنگام ارسال از طریق شبکههای ناامن استفاده میکند. رمزنگاری فرآیندی است که اطلاعات را به صورت کد در میآورد تا فقط گیرنده مورد تایید بتواند آن را بخواند. این رمزگذاری از طریق الگوریتمهای مختلف مانند AES، Blowfish و RSA انجام میشود.
این روش، اتصال شما را در برابر تهدیدات DDOS محافظت میکند و امنیت ورود به سیستم راه دور و اشتراکگذاری دادهها را افزایش میدهد. پروتکل Secure Shell برای جایگزینی با پروتکلهای غیر امنی مانند Telnet و rlogin توسعه یافته است تا بتوانید ارتباطات رمزگذاری شده را برای مدیریت سیستم و دادههای خود فراهم کنید.
نحوه کار پروتکل SSH چگونه است؟
SSH از معماری کلاینت (کاربر) و سرور برای برقراری ارتباطات رمزگذاری شده استفاده میکند. کلاینت SSH به عنوان واسطهای عمل میکند که اتصال امن به سرورهای SSH را فراهم میآورد و میتواند session ها را مشاهده و کنترل کند. سرور رایانهای است که با استفاده از پروتکل SSH به آن دسترسی پیدا میشود.
هنگامی که نیاز به برقراری ارتباط بین دو دستگاه، یک کلاینت SSH و یک سرور وجود دارد، کلاینت SSH با برقرای ارتباط با سرور، اتصال را شروع میکند. سپس، کلاینت به سرور مراجعه کرده و کلید عمومی را دریافت میکند.
در واقع، هنگام استفاده از پروتکل اس اس اچ با سه بخش اصلی روبرو هستید: دستور ssh ، نام کاربری و جزئیات سرور مانند آدرس IP یا دامنه آن.
این سه بخش را به عنوان قفل، کلید و درب رایانهای که از شما فاصله دارد، در نظر بگیرید. دستور ssh مانند قفل عمل می کند و اتصال امن را برقرار میسازد، نام کاربری شما مانند کلید است که هویت شما را برای دسترسی مشخص میکند و جزئیات سرور نمایانگر درب است که مشخص میکند به کدام رایانه متصل میشوید. با کارکرد هماهنگ این اجزا می توانید به صورت ایمن به یک رایانه از راه دور متصل شوید.
ویژگیهای SSH
اکنون که متوجه شدید ssh چیست و نحوه کار پروتکل آن چگونه است در ادامه، به بررسی ویژگیهای Secure Shell (پوسته امن) که اساس عملکرد این پروتکل را تشخیص میدهند، خواهیم پرداخت.
SSHD
رایانه راه دور یک دیمن SSH، یا همان sshd، را اجرا میکند. این بخش منتظر اتصالات ورودی در یک مسیر آنلاین خاص به نام پورت 22 است. هنگامی که یک درخواست اتصال ssh وارد میشود، قبل از اجازه تبادل امن داده، اعتبارسنجی را بررسی میکند.
RFC
این اصطلاح مخفف Request for Comments است. این بخش مجموعهای از قوانین است که SSH برای اطمینان از ایمنی تمامی تبادلات داده از آن پیروی میکند. این قوانین همه چیز را از روشهای رمزنگاری تا گواهیهای امنیتی پوشش میدهند.
لایههای SSH
SSH به سه لایه اصلی سازماندهی شده است. لایه transport که مسئول امنسازی اتصال از طریق رمزنگاری است. لایه احراز هویت کاربر (authentication) وظیفه تایید هویت کسی که سعی در اتصال دارد را بر عهده دارد. لایه connection جریان دادهها را پس از برقراری اتصال مدیریت میکند.
مزایا SSH
مزایای پروتکل Secure Shell شامل موارد زیر میباشند:
افزایش امنیت از طریق رمزنگاری
پروتکل اس اس اچ با استفاده از الگورتیمهای ریاضی، دادههای بین کلاینت و سرور را به یک کد تبدیل میکند تا بدین صورت، فقط اشخاص مجاز بتوانند دادههای درحال انتقال را رمزگشایی کنند. برای مثال برای شرکتهایی که جزئیات پرداخت را دریافت میکنند یا با اطلاعات پزشکی سروکار دارند.
- رمز گذاری متقارن و نامتقارن: SSH ابتدا با استفاده از کلید رمزنگاری متقارن دادههای اولیه را هم رمزگذاری و هم رمزگشایی میکند. سپس، به رمزنگاری نامتقارن سوییچ میکند و از دو کلید مختلف برای رمزگذاری و رمزگشایی استفاده میکند. این فرایند اتصال اولیه امن را تضمین میکند و هویت دو طرف را تایید میکند.
- تانلینگ و هدایت پورت : پروتکل ssh میتواند دادههای کم امنیتتر را در یک لایه رمزنگاری قرار دهد و بدون اینکه به فایروالها نفوذ کند یک تونل امن برای ترافیک وب ایجاد کند. این ویژگی یک لایه امنیتی دیگر را اضافه میکند.
بهبود یکپارچگی دادهها
SSH از تکنیکی به نام هشینگ (hashing) برای ایجاد یک اثر انگشت دیجیتال منحصر به فرد از دادهها استفاده میکند که تایید میکند دادهها در قرارداد و سایر اسناد حساس بدون تغییر به دست طرف مقابل رسیدهاند. این ویژگی برای تایید قرار دادهها و امضاهای دیجیتال و اطمینان از عدم تغییر در دانلودها کاربردی تلقی میشود.
تسهیل محیطهای کار ترکیبی و انعطافپذیر
ویژگی به نام X11 Forwarding به شما امکان میدهد برنامههای رابط کاربری گرافیکی (GUI) نصب شده بر روی یک سرور مجازی راه دور را اجرا کنید و آنها را در دستگاه محلی خود نمایش دهید. همچنین شما میتوانید با برنامههای نرمافزاری تصویری به همان صورتی که در رایانه محل کار شما نصب شدهاند تعامل داشته باشید. به عنوان مثال، میتوانید از یک برنامه طراحی نصب شده بر روی رایانه محل کار خود در خانه استفاده کنید و تمام عملکردها را دقیقاً همانطور که در دفتر انجام میدهید به انجام برسانید. کاربران SSH بدون در نظر گرفتن مکان، از انعطاف پذیری و بهره وری بیشتری برخوردار میشوند.
قابلیتهای Secure Shell
SSH یا Secure Shell امکانات زیر را فراهم میکند:
- دسترسی از راه دور به سیستمها یا دستگاههای شبکه که SSH فعال دارند و همچنین فرآیندهای خودکار.
- Sessions انتقال فایل ایمن و تعاملی
- انتقال فایلهای خودکار و ایمن
- صدور دستورات امن بر روی دستگاهها یا سیستمهای راه دور
- مدیریت امن اجزای زیرساخت شبکه
SSH میتواند به صورت تعاملی برای ایجاد جلسات ترمینال امن مورد استفاده قرار گیرد و به عنوان جایگزینی با امنیت بالا برای برنامه Telnet مورد استفاده قرار گیرد. همچنین این پروتکل معمولاً در اسکریپتها و سایر نرم افزارها استفاده میشود تا امکان دسترسی ایمن و از راه دور به دادهها و منابع دیگر سیستمها را فراهم کند.
کاربرد پروتکل SSH چیست؟
اکنون که با مفهوم SSH چیست آشنا شدیم اکنون ممکن است برای شما سوال باشد که چه کسانی از SSH استفاده میکنند و چرا؟ در پاسخ به این سوال میتوان گفت SSH بهعنوان یک پروتکل چندمنظوره و با کاربردهای مختلفی مورد استفاده قرار میگیرد. در ادامه به بررسی کاربردهای این پروتکل خواهیم پرداخت.
- مدیران IT از SSH برای ورود و مدیریت سروری که در نقطه دیگری از جهان قرار دارد استفاده میکنند و یک اتصال امن از رایانه خود به سرور راه دور برقرار میکنند. این مورد برای انجام وظایفی مانند به بهروزرسانی نرم افزار کاربردی است و کاربران میتوانند بدون نیاز به مراجعه حضوری به مکان فیزیکی سرور وظایف مربوطه را به انجام برسانند.
- در انتقال فایلها، SSH نسبت به گزینههای دیگر مانند FTP (پروتکل انتقال فایل) امنیت بیشتری دارد. هنگامی که از این پروتکل برای ارسال فایلهای حساس، مانند اسناد مالی، استفاده میکنید، پروتکل دادهها را رمزنگاری میکند و دسترسی یا دستکاری غیرمجاز به دادهها را در حین انتقال دشوار میسازد.
- این پروتکل راهی امن برای دسترسی به خدمات ابری فراهم می کند. به عنوان مثال، اگر یک کسب و کار آنلاین دارید و دادههای مشتری را در فضای ابری ذخیره میکنید، میتوانید از SSH برای بازیابی ایمن این اطلاعات استفاده کنید و دادههای مشتریان خود را از تهدیدات احتمالی آنلاین محافظت کنید.
- SSH میتواند محدودیتهای فایروال را با مسیریابی اتصال شما از طریق سرور دیگری، که توسط همان فایروالها محدود نمیشود، دور بزند و از آن عبور کند.
تفاوت SSH و Telnet
Telnet اولین پروتکلی بود که برای ایجاد اتصالات راه دور به دستگاههای هدف وجود آمد. تفاوت اصلی این دو پروتکل آن است که ارتباط با استفاده از SSH با استفاده از رمزنگاری کلید عمومی یا رمزگذاری جفت کلید رمزگذاری میشود، در حالی که ارتباط با Telnet رمزگذاری نمیشود و امنیت کمتری دارد. Telnet برای شبکههای محلی (LAN) و شبکههای خصوصی طراحی شده بود، در حالی که SSH میتواند در شبکههای باز و حتی اینترنت استفاده شود.
کاربرد Telnet به عنوان یک شبیهساز ترمینال برای ماشین هدف شروع و پایان مییابد، در حالی که با استفاده از SSH، کاربر میتواند علاوه بر صدور دستورات، مدیریت برنامهها و انتقال امن فایلها با استفاده از پروتکل انتقال فایل SSH (SFTP) را انجام دهد.
در اینجا جدول مقایسهای برای تفاوت بین SSH و Telnet آمده است:
ویژگی | SSH | Telnet |
رمزگذاری | استفاده از رمزنگاری کلید عمومی برای رمزگذاری و تایید هویت | بدون رمزگذاری، دادهها به صورت متن ساده ارسال میشوند |
امنیت | بسیار امن، محافظت از دادهها و دستورات | کمتر ایمن، آسیبپذیر به حملات شنود |
استفاده اصلی | شبیهسازی ترمینال، صدور دستورات از راه دور، انتقال فایلها (SFTP)، تونل کردن برنامهها | شبیهسازی ترمینال |
شبکههای قابل استفاده | قابل استفاده در شبکههای باز و اینترنت | عمدتاً برای شبکههای محلی (LAN) و شبکههای خصوصی |
پروتکلهای مرتبط | SFTP، tunneling (تغییر مسیر) | هیچ پروتکل اضافی ندارد |
راهاندازی session | با استفاده از رمزنگاری و تایید هویت | بدون تایید هویت و رمزنگاری |
عملکردهای اضافی | انتقال امن فایلها و تونل کردن دیگر برنامهها | فقط شبیهسازی ترمینال |
تفاوت SSH و SSL/TLS
پروتکل امنیت لایه حمل و نقل (TLS) که پروتکل لایه سوکت های امن (SSL) را به روز می کند، برای تامین امنیت برای انتقال شبکه در لایه انتقال طراحی شده است. پروتکل SSH نیز در لایه انتقال یا درست بالای آن عمل می کند، اما تفاوت های مهمی بین این دو پروتکل وجود دارد. در ادامه تفاوت SSH و SSL/TLS در جدول بررسی خواهیم کرد.
ویژگی | SSH | SSL/TLS |
رمزنگاری و تایید هویت | رمزنگاری و تایید هویت تمام اتصالات | تنها سرور با یک جفت کلید تأیید هویت میشود، امکان رمزگذاری بدون تایید هویت یا تایید هویت بدون رمز گذاری وجود دارد |
کلیدهای مورد استفاده | از یک جفت کلید برای هر اتصال استفاده میکند؛ یکی برای اتصال از ماشین محلی به ماشین راه دور و دیگری برای اتصال از ماشین راه دور به ماشین محلی | فقط سرور با یک جفت کلید تأیید هویت میشود |
تامین امنیت | رمزنگاری و تایید هویت تمام اتصالات | ممکن است بدون تایید هویت یا بدون رمزگذاری باشد |
مدیریت از راه دور | به متخصصین IT و امنیت اطلاعات این امکان را میدهد که به صورت امن مدیریت SSH clients را از راه دور انجام دهند و تنظیمات SSH را تغییر دهند | معمولاً برای تامین امنیت ارتباطات در لایه انتقال مورد استفاده است و بیشتر به تأمین امنیت وبسایتها و برنامههای کاربردی متمرکز است |
تایید هویت دستگاهها | تأیید هویت دستگاهها به جای استفاده از رمز عبور | تأیید هویت معمولاً محدود به سرور است و از رمز عبور یا مکانیزمهای دیگر استفاده میشود |
SSH یک ابزار قدرتمند برای مدیریت و ارتباطات امن در شبکههای کامپیوتری است که با استفاده از این پروتکل کاربران ابر آسیاتک میتوانند از هر موقعیت جغرافیایی به صورت امن به سرورهای خود متصل شوند، فایلها را انتقال دهند و ارتباطات شبکهای ایمن ایجاد کنند.
سوالات متداول
1- چه چیزهایی برای اتصال به SSH نیاز دارم؟
برای اتصال به ssh به یک نام کاربری، آدرس IP و رمز عبور نیاز دارید.
2- آیا پروتکل ssh فقط برای اتصال به سرور استفاده میشود؟
خیر، برای انتقال فایلها و اجرای دستورات از راه دور نیز استفاده میشود.
3- آیا SSH از رمزنگاری استفاده میکند؟
بله، SSH از رمزنگاری برای ایجاد امنیت دادهها در هنگام انتقال بین کاربر و سرور استفاده میکند.