پروتکل SSH چیست؟

پروتکل SSH چیست؟

امید صادقی ادمین
مدت زمان مطالعه: 15 دقیقه 19 خرداد 01

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


پروتکل SSH چیست و چه کاربردی دارد؟

SSH مخفف عبارت Secure Socket Shell می باشد، و به منظور برقراری ارتباط امن بین دو دستگاه، دو کامپیوتر یا کامپیوتر و سرور، بر روی شبکه ارائه شده است. این پروتکل، در واقع جایگزینی برای پروتکل هایی مثل FTP و Telnet است که قدیمی تر بوده و نسبتاً امنیت پایین تری دارند. 

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

پروتکل SSH چیست و چه کاربردی دارد؟

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

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

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

SSH نسخه های مختلفی دارد، که در ادامه این مقاله به ترتیب معرفی و توضیحات لازم ارائه خواهد شد.

آشنایی با انواع روش های ارتباطی در پروتکل SSH

روش هایی که پروتکل SSH برای ارتباط با سرور استفاده می کند، بسته به نرم افزاری که برای انجام این کار انتخاب کرده باشیم، متفاوت است. به طور کلی 3 روش زیر برای ارتباط استفاده می شود:

  • Slogin

این روش ارتباطی برای برقراری ارتباط با سرور های مبتنی بر سیستم عامل یونیکس کاربرد دارد.

  • SSH

این روش ارتباطی برای ارتباط امن با سرور، و انتقال اطلاعات با کلاینت برای سرور ها می باشد.

  • SCP

این روش ارتباطی برای تهیه کپی امن از داده ها می باشد.

روش های تأمین امنیت در پروتکل SSH

در بخش قبلی به این موضوع اشاره کردیم که پروتکل SSH به منظور رفع نقایص امنیتی پروتکل های FTP و Telnet ارائه شده است. سوالی که اینجا مطرح است، چرا پروتکل SSH را پروتکل ایمنی می دانیم؟ و چه تفاوتی با پروتکل های قبلی در تأمین امنیت دارد؟ در پاسخ به این سوال باید بگوییم، پروتکل SSH از دو روش Cryptography و Authentication در حین برقراری ارتباط بین دو دستگاه استفاده می کند.

با استفاده از Cryptography رمزنگاری اطلاعات را انجام می دهد، و با استفاده از Authentication نیز فرایند احراز هویت طرفین با استفاده از کلید عمومی و کلید خصوصی (Public Key, Private Key) ارتباط را انجام می دهد. بدین صورت با وجود احراز هویت و رمزنگاری اطلاعات، امنیت بالایی در کنترل از راه دور سرورهای مجازی یا اختصاصی فراهم شده است. 

در بخش های بعدی مقاله، این روش های تأمین امنیت، بیشتر توضیح داده خواهند شد.

نحوه عملکرد این پروتکل به صورتی است که، بعد از برقراری ارتباط بین کامپیوتر کاربر و سرور مقصد، عملیات رمزنگاری با روش هایی که در ادامه توضیح داده خواهد شد، به صورت هشینگ و Symmetrical یا متقارن ارتباط را ایمن می کند. در این حالت تمامی داده هایی که در این بین منتقل شوند، به صورت رمز شده و با امنیت بالا ارسال می شوند.

احراز هویت یا Authentication چگونه عمل می کند؟

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

در قسمت قبلی اشاره کردیم که احراز هویت از طریق کلید عمومی و خصوصی، این SSH Keys به چه معنا هستند. یعنی در زمان اتصال، کاربری که قصد اتصال به یک سرور را دارد، می بایست Private key مربوط به کلید عمومی آن سرور را در اختیار داشته باشد. اگر کلید خصوصی مورد تأیید بود، ارتباط برقرار خواهد شد. البته این روش، جدا از روش تأیید هویت با رمز عبور است. 

رمز نگاری یا Cryptography چگونه عمل می کند؟

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

بنابراین با وجود این پروتکل، هیچ دسترسی غیر مجازی به افراد دیگر داده نخواهد شد. همانطور که توضیح دادیم، در کنار رمزنگاری، از احراز هویت نیز استفاده می شود، که این دو روش امنیتی، در کنارهم ارتباطی مطمئن را فراهم می کنند.

تکنولوژی رمزنگاری در پروتکل SSH

این پروتکل برای رمزنگاری داده ها از 3 روش رمزنگاری متقارن، رمز نگاری نامتقارن و رمزنگاری هشینگ استفاده می کند. در ادامه عملکرد هر یک از این روش ها را توضیح خواهیم داد.

  1. رمزنگاری متقارن یا Symmetrical

    رمزنگاری متقارن یا Symmetrical
    یکی از روش هایی که در رمزنگاری پروتکل SSH استفاده می شود، رمزنگاری Symmetrical می باشد. در این روش هم کاربر و هم سرور از یک کلید برای رمزنگاری و رمزگشایی استفاده می کنند. عملکرد این روش به این صورت است که، هر اطلاعاتی که از فرستنده به گیرنده ارسال یا دریافت می شود، به صورت رمزنگاری شده و گیرنده باید کلید را در اختیار داشته باشد. تمامی این بررسی ها توسط پروتکل به صورت خودکار انجام می شود، بنابراین منظور از کلید، چیزی که در اختیار شما باشد، نیست.
  2. رمزنگاری نامتقارن یا Asymmetrical

    رمزنگاری نامتقارن یا Asymmetrical
    روش دیگری که به منظور رمزنگاری اطلاعات استفاده می شود، رمزنگاری Asymmetrical یا نامتقارن می باشد. در این روش برخلاف روش متقارن، از 2 کلید مجزا برای رمزنگاری و رمزگشایی استفاده می شود، و کلید ها یکسان نیستند. این کلید ها با نام های کلید عمومی یا public و کلید خصوصی یا private شناخته می شوند. عملکرد این روش به این صورت است که، هر داده ای با کلید عمومی رمزنگاری شود، تنها با کلید خصوصی رمزگشایی خواهد شد.
  3. روش هشینگ Hashing

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

با توجه به توضیحاتی که داده شد، حین اتصال ریموت به یک سرور، بدون نگرانی از هک شدن اطلاعات اکانت خود می توانیم به سرور به صورت ایمن متصل شویم. در این حالت username و password ما رمزنگاری شده و هکر ها و افراد غیر مجاز نمی توانند به آن دسترسی پیدا کنند. 

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

نحوه اتصال به سرور از طریق SSH

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

نکته: ترمینال ( Terminal ) مانند محیط Command Prompt ویندوز است و محیطی کد محور می باشد.

بدین ترتیب، بر روی سیستم عامل ویندوز، لازم است از نرم افزار های ویژه ای استفاده کنیم، که در ادامه معرفی خواهند شد. این نرم افزار ها که SSH Client هم گفته می شوند، به کاربران سیستم عامل های ویندوزی، امکان ارتباط با سرور های با سیستم عامل لینوکس را به راحتی می دهند. 

در ادامه دو مورد از برترین ها و پرکاربرد ترین های ارتباط به سرور از طریق SSH را معرفی خواهیم کرد:

  1. نرم افزار PuTTY

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

    نرم افزار های محبوب دیگری نیز هست، که در صورت تمایل می توانید از آن ها نیز استفاده کنید.
  2. اپلیکیشن Terminus

    ترمینوس یک اپلیکیشن موبایلی است، که امکان ارتباط از راه دور به سرور ها را از طریق گوشی موبایل فراهم کرده است. اپلیکیشن های دیگری هم هستند، که تقریباً کاربرد و روش اتصال همگی یکسان است. این اپلیکیشن هم نسخه اندروید و هم نسخه ios دارد، بنابراین می توانید بسته به نوع سیستم عامل موبایل خود، نسخه مناسب را از Google Play یا App Store دانلود و نصب کنید.

جمع بندی

استفاده از پروتکل SSH به جای پروتکل های قدیمی تری مانند FTP و Telnet می تواند نقش بسیار مهمی در حفظ امنیت اطلاعات به خصوص اطلاعات ورود به حساب های کاربری سرور ها ایفاد کند. این پروتکل با روش های رمزنگاری متقارن، نامتقارن و هشینگ، به بهترین و کامل ترین شکل ممکن تمامی داده ها رمزنگاری کرده و ارتباطی ایمن فراهم می کند. 

حتماً از این پروتکل استفاده کنید و حتی برای انتقال فایل ها نیز از SSH استفاده کنید. کاربرد های این پروتکل بسیار زیاد است و یکی از کامل ترین سرویس های انتقال اطلاعات بین کلاینت و سرور به روش ایمن می باشد.

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

برچسب ها :
دسته بندی ها :