آنچه در این مقاله می خوانید:

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

پروتکل SSH
این مقاله در تاریخ 28 تیر 1400 نوشته و در تاریخ 23 آبان 1400 مورد بازبینی قرار گرفته است.

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

پروتکل SSH که با نام Secure Shell یا Secure Socket Shell نیز شناخته می شود، یک پروتکل شبکه است که به افراد روشی ایمن برای دسترسی از یک کامپیوتر به کامپیوتر دیگر را از طریق یک شبکه ناامن ارائه می دهد. علاوه بر ارائه خدمات شبکه ایمن، SSH به مجموعه برنامه های کاربردی اشاره دارد که پروتکل SSH را اجرا می کنند. Secure Shell، احراز هویت پسورد قوی و احراز هویت کلید عمومی(Public Key) و همچنین ارتباطات رمزگذاری شده داده ای بین دو کامپیوتر متصل به یک شبکه باز مانند اینترنت را فراهم می کند.

با این کار از امنیت و یکپارچگی ارتباطات محافظت می کند. این یک گزینه امن برای پروتکل های ورود به سیستم غیر محافظت شده (مانندtelnet ،rlogin) و روش های انتقال فایل ناامن (مانند FTP) است. علاوه بر ارائه رمزگذاری قوی، به مدیران شبکه برای مدیریت سیستم ها و برنامه ها از راه دور به طور گسترده ای کمک می کند، به آنها امکان می دهد از طریق شبکه به کامپیوتر دیگری وارد شوند، دستورات را اجرا کنند و فایل ها را از یک کامپیوتر به کامپیوتر دیگر انتقال دهند.

پروتکل SSH هم به پروتکل شبکه رمزنگاری اشاره دارد و هم به مجموعه برنامه های کاربردی که آن پروتکل را اجرا می کنند. SSH با استفاده از مدل client-server، اتصال یک برنامه Client Secure Shell را به یک سرور SSH، یعنی پایان محل اجرای یک Session، متصل می کند. پیاده سازی های SSH اغلب شامل پشتیبانی از پروتکل های برنامه ای است که برای شبیه سازی ترمینال (terminal emulation) یا انتقال فایل (file transfer) استفاده می شود.

پروتکل SSH

همچنین می توان از پروتکل SSH برای ایجاد تونل (tunnel) های ایمن برای سایر پروتکل های برنامه استفاده کرد. یک سرور SSH به طور پیش فرض، روی پورت 22 پروتکل TCP گوش می دهد. کلاینت ها و سرورهای SSH می توانند از تعدادی روش رمزگذاری استفاده کنند که بیشترین استفاده را از استاندارد رمزگذاری پیشرفته (AES) و Blowfish دارند.

 

تاریخچه پروتکل SSH:

پروتکل SSH در سال 1995 توسط آقای Tatu Ylönen ابداع شد. آقای تاتو پروتکل SSH را به منظور رفع مشکلات امنیتی اتصال که در پروتکل های Telnet و rLogin دیده می شود ارائه کرده است. پس از معرفی SSH که پورت پیشفرض 22 را به خود اختصاص داده است اغلب اتصال ها با این روش انجام می شود که دارای کارایی و امنیت بالاتری است.

 

کاربردهای پروتکل SSH:

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

Secure Shell برای اتصال به سرورها، ایجاد تغییرات، اپلود کردن استفاده می شود، یا با استفاده از ابزار یا مستقیم از طریق ترمینال. کلیدهای SSH می توانند برای دستیابی خودکار به سرورها استفاده شوند و اغلب در اسکریپت ها، سیستم های پشتیبان گیری و ابزارهای مدیریت پیکربندی استفاده می شوند. کلیدهای SSH یک ورود به سیستم single sign-on(SSO) را برای شما فراهم می کنند تا کاربران بتوانند بدون تایپ کردن پسورد هر بار بین اکانت های خود حرکت کنند.

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

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

یک نشست (ارتباط) واحد به دو جفت کلید عمومی نیاز دارد: یک جفت کلید عمومی برای تأیید اعتبار سیستم از راه دور به سیستم محلی و یک جفت کلید عمومی دوم برای احراز هویت سیستم محلی در سیستم از راه دور.

 

مسائل امنیتی SSH:

پروتکل SSH

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

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

راه های افزایش امنیت کار با SSH:

  • ایجاد کلید خصوصی و اتصال به واسطه آن
  • تغییر پورت پیشفرض SSH
  • اعمال محدودیت IP برای اتصال از طریق SSH
  • بروزرسانی مداوم سیستم عامل و سرویس SSH

 

تفاوت SSH و Telnet:

Telnet یکی از اولین پروتکل های اینترنت است و برای شروع و نگهداری یک جلسه شبیه سازی ترمینال (terminal emulation) در یک سیستم از راه دور استفاده می شود. SSH و Telnet از لحاظ عملکردی مشابه یکدیگر هستند، تفاوت اصلی بین آنها این است که پروتکل SSH از رمزنگاری کلید عمومی برای تأیید اعتبار نقاط پایانی، هنگام تنظیم یک جلسه ترمینال و همچنین رمزگذاری دستورات جلسه و خروجی استفاده می کند.

در حالی که از Telnet در درجه اول برای شبیه سازی ترمینال استفاده می شود، اما می توان از SSH برای شبیه سازی ترمینال و همچنین برای صدور دستورات از راه دور مانند RSH، انتقال فایل ها با استفاده از پروتکل انتقال فایل SSH (SFTP) و tunneling سایر موارد برنامه های کاربردی.

 


 

بیشتر بخوانید: پروتکل FTP چیست

 


 

تفاوت SSH و SSL/TLS:

پروتکل Transport Layer Security (TLS) که پروتکل Secure Sockets Layer (SSL) را به روز می کند، برای ایجاد امنیت در انتقال شبکه در لایه transport طراحی شده است. پروتکل SSH نیز در لایه transport و درست بالای آن عمل می کند، اما تفاوت های مهمی بین این دو پروتکل وجود دارد.

در حالی که هر دو برای تأیید اعتبار هاست ها به جفت کلید عمومی / خصوصی متکی هستند، در بخش TLS، سرور فقط با یک جفت کلید احراز هویت می شود. SSH برای تأیید اعتبار هر اتصال، از یک جفت کلید جداگانه استفاده می کند: یک جفت کلید برای اتصال از یک سیستم محلی به یک سیستم از راه دور و یک جفت کلید دوم برای تأیید اعتبار اتصال از راه دور به سیستم محلی. تفاوت دیگر بین SSH و TLS این است که TLS امکان رمزگذاری اتصالات بدون احراز هویت یا تأیید اعتبار بدون رمزگذاری را فراهم می کند. اما SSH تمام اتصالات را رمزگذاری و تأیید می کند.

SSH برای متخصصین فناوری اطلاعات و امنیت اطلاعات (infosec) با مکانیزمی ایمن، مدیریت از راه دور SSH clients را فراهم می کند. SSH به جای احراز هویت رمز عبور برای برقراری ارتباط بین سرویس گیرنده SSH و سرور، خود دستگاه ها را تأیید می کند. این کارکنان IT را قادر می سازد تا با سیستم های از راه دور ارتباط برقرار کرده و تنظیمات SSH را تغییر دهند، از جمله اضافه کردن یا حذف جفت کلید میزبان در فایل های هاست.

 

پیاده سازی SSH:

به عنوان یک پروتکل باز، پروتکل SSH برای اکثر سیستم عامل ها پیاده سازی شده است و اجرای متن باز OpenSSH یکی از مواردی است که معمولاً در لینوکس، یونیکس و سایر سیستم عامل های مبتنی بر توزیع نرم افزار Berkeley (BSD)، از جمله macOS اپل یافت می شود. OpenSSH برای اجرا در Windows PowerShell از سال 2015 ایجاد شد و در سال 2018، پشتیبانی اختیاری OpenSSH به ویندوز 10 اضافه شد. در حالی که SSH به طور پیش فرض در اکثر سیستم عامل های مشابه یونیکس به طور مستقیم قابل دسترسی است، نسخه پورت شده OpenSSH مایکروسافت در تنظیمات Windows وجود دارد.

PuTTY یکی دیگر از پیاده سازی های open source SSH است، گرچه این برنامه در حال حاضر برای ویندوز، macOS و Unix / BSD در دسترس است، اما PuTTY برای اجرا در ویندوز نوشته شده است و مدت هاست که یکی از گزینه های برتر استفاده از SSH در سیستم ویندوز است. بیشتر پیاده سازی های مجموعه SSH شامل سه برنامه کاربردی از قبیل: slogin (ورود ایمن)، ssh و scp (کپی امن) است که نسخه های ایمن برنامه های ناامن قبلی یونیکس شامل rlogin، rsh و rcp هستند. برای تأیید اعتبار سیستم از راه دور از رمزنگاری کلید عمومی استفاده می کند و در صورت لزوم، سیستم از راه دور را قادر می سازد تا کاربر را تأیید کند.

در حال حاضر ده ها پیاده سازی پروتکل SSH برای سیستم عامل های مختلف و تحت انواع مجوزهای open source و اختصاصی در دسترس است.

 

دستورات پروتکل SSH:

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

اساسی ترین شکل دستور پروتکل SSH فراخوانی برنامه و نام هاست مقصد یا آدرس IP است:

به عنوان مثال ssh server.mrshabake.com یا ssh 192.168.10.50

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

Ssh [email protected]

همچنین از پروتکل SSH می توان برای صادر کردن یک دستور واحد درهاست از راه دور استفاده کرد و سپس خارج شد:

ssh mrshabake.com ls

این دستور، دستور Unix ls را اجرا می کند، که تمام محتویات فهرست فعلی را در هاست از راه دور لیست می کند. در حالی که این مثال پیش پا افتاده است، نشان می دهد که می توان از SSH برای اجرای دستورات  بیشتر در یک سیستم از راه دور استفاده کرد.

به عنوان مثال دستور scp، برای کپی کردن فایلها از یک کامپیوتر به کامپیوتر دیگر استفاده می شود و نسخه rcp با امنیت SSH است.

ssh-copy-id برای کپی، نصب و پیکربندی کلید SSH در سرور جهت خودکار سازی ورود بدون رمز و SSO استفاده می شود.

sftp برای کپی کردن فایلها از یک کامپیوتر به کامپیوتر دیگر استفاده می شود و یک نسخه امن تر از ftp (پروتکل اصلی انتقال فایل) است.

 

SSH tunneling:

SSH tunneling، همچنین به عنوان SSH port forwarding هم شناخته می شود، روشی است که کاربر را قادر می سازد یک تونل امن بین یک هاست محلی و یک هاست از راه دور باز کند.

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

SSH tunneling ابزار قدرتمندی برای مدیران IT است زیرا می توانند فایروال سازمانی را بدون شناسایی ترانزیت کنند. در نتیجه، ابزارهایی برای جلوگیری از استفاده غیر مجاز از تونل های SSH از طریق فایروال سازمانی در دسترس است.

جهت خرید و آشنایی با سوئیچ های سیسکو بر روی لینک مربوطه کلیک کنید.

شما می توانید کلیه تجهیزات شبکه مورد نیاز خود را از مسترشبکه بزرگترین فروشگاه اینترنتی تجهیزات شبکه در ایران با بهترین قیمت و کیفیت خریداری نمایید.

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

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

محبوب ترین محصولات

سبد خرید
ورود

هنوز حساب کاربری ندارید؟

شروع به تایپ کردن برای دیدن پستهایی که دنبال آن هستید.
مقایسه
0 موارد محصول
فهرست
مسترشبکه

شنبه تا پنج شنبه از ساعت 9:30 الی 18:00 پاسخگوی شما هستیم.

شماره تماس: 62913-021 

پاسخگوی سوالات شما هستیم:

jamshidi
javadi
mohammadi
ali-300x300

ارسال لیست و استعلام قیمت برای شرکت ها و همکاران محترم: