پروتکل SSH چیست
پروتکل SSH چیست و چگونه کار میکند؟

شاید این سوال برای شما به‌وجود آمده باشد که پروتکل SSH چیست و چه مفهومی دارد؟ پروتکل SSH مخفف عبارت Secure Shell بوده و به‌معنی روشی برای ورود از راه دور از یک کامپیوتر به کامپیوتر دیگر است.

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

استفاده‌های متداول از پروتکل SSH

از این پروتکل در شبکه‌های شرکتی برای موارد زیر استفاده می‌شود:

  • فراهم کردن دسترسی امن برای کاربران
  • انتقال‌ فایل‌ها به‌صورت خودکار
  • صدور فرمان از راه دور
  • مدیریت زیرساخت شبکه و سایر اجزای سیستمی

پروتکل SSH چگونه کار می‌کند؟

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

تصویر زیر یک چیدمان ساده از اتصال امن را نشان می‌دهد:

secure shellssh 1 638.jpg12 123

چیدمانی ساده از اتصالی امن

تائید هویت با استفاده از کلیدهای SSH

از چندین گزینه برای تائید هویت کاربر می‌توان استفاده کرد اما متداول‌ترین گزینه‌، استفاده از پسورد و کلید عمومی تائید هویت است.

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

SSH Key Authentication12

بیشترین استفاده از کلید تائید هویت، در فعال‌سازی خودکار امنیت است. انتقال خودکار امنیت فایل Shell، برای ادغام اپلیکیشن‌ها و همچنین برای سیستم‌های خودکار و مدیریت پیکربندی استفاده می‌شود. مدیریت کلید SSH به‌ویژه برای سازمان‌های بزرگ، از اهمیت بسیار بالایی برخوردار است. کلیدهای SSH همان دسترسی‌هایی که نام کاربری و رمز عبور می‌دهند را به ما خواهند داد.

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

پروتکل Telnet چیست و چگونه کار می‌کند؟

تکنولوژی Telnet یا Teletype Network یکی از راه‌های کنترل یک رایانه از راه دور می‌باشد که از طریق محیط Command Prompt یا به اختصار CMD امکان برقراری ارتباط میان ۲ کامپیوتر را فراهم می‌کند، این پروتکل روی پورت ۲۳ فعال است، اما یک نقطه ضعف بزرگ دارد و آن چیزی نیست جز عدم رمزنگاری اطلاعات ارسالی و دریافتی و این بدان معناست که داده‌های رد و بدل شده روی شبکه می‌تواند به راحتی توسط افراد غیر مجاز شنود شده و مورد سوءاستفاده قرار بگیرد.

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

فناوری SSH چگونه ابداع شد؟

داستان به وجود آمدن این تکنولوژی به سال ۱۹۹۵ بر می‌گردد، زمانی که Tatu Ylonen با شنود اطلاعات در ارتباطات Telnet مواجه شد و تصمیم گرفت راهکاری برای حل این مشکل پیدا کند، سپس اقدام به طراحی یک لایه‌ی امن و کدگذاری شده برای Telnet کرد و حاصل تلاش‌های او چیزی نبود جز اختراع SSH یا پوسته‌ی امن!

سپس برای دریافت یک شماره‌ی پورت برای این تکنولوژی یک نامه با مضمون زیر برای IANA (سازمانی برای تخصیص شماره‌های موجود در ایترنت) ارسال کرد:

سرور گرامی،

من برنامه‌ای برای ورود امن از یک دستگاه به دستگاه دیگر نوشته‌ام که دیوایس را از ناامنی شبکه حفظ می‌کند، این برنامه نسبت به پروتکل‌های موجود مانند Telnet و rLogin از امنیت و کارایی بیشتری برخوردار است و به طور خاص از شنود شدن آی‌پی، دی‌ان‌اس و… توسط افراد سودجو جلوگیری می‌کند. من تصمیم دارم تا این پروتکل را به‌ صورت رایگان در اینترنت منتشر نموده و به این ترتیب امکان استفاده‌ی گسترده از آن را فراهم نمایم، از این رو خواهان تخصیص یک شماره پورت خاص و ویژه به این پروتکل هستم. از آنجا که این شماره باید در فیلد WKS در Name Server استفاده شود، می‌بایست عددی بین ۱ تا ۲۵۵ باشد.

پیش‌نویس RFC این پروتکل در ذیل این درخواست آمده است، نرم‌افزار مذکور پیش از این چندین ماه به‌ صورت لوکال مورد استفاده قرار داشته و اکنون به جز شماره‌ی پورت، همه چیز برای انتشار آن آماده است، اگر تمهیداتی اندیشیده شود تا اختصاص شماره‌ی پورت در کمترین زمان صورت گیرد، انتشار نرم‌افزار در هفته‌ی جاری امکان‌پذیر خواهد شد، من در حال حاضر از پورت شماره‌ی ۲۲ در تست نسخه‌ی بتای این نرم‌افزار استفاده نموده‌ام و بسیار خرسند خواهم شد اگر همین شماره برای من در نظر گرفته شود (لازم به ذکر است که این شماره هنوز به چیزی اختصاص داده نشده است)

نام سرویس این نرم‌افزار SSH (مخفف Secure Shell) است.

ارادتمند شما، تاتو یلونن

سپس در نهایت ناباوری، فردای آن روز نامه‌ای را با مضمون زیر از IANA دریافت کرد:

تاتو،
همان‌طور که خواسته بودید، پورت شماره‌ی ۲۲ را به شما اختصاص دادیم.
جویس

و در نهایت به همین راحتی پورت شماره‌ی ۲۲ را برای این پروتکل دریافت کرد!

پروتکل SSH دقیقا چیست و چگونه کار می‌کند؟

تکنولوژی SSH نسخه‌ی امن Telnet است که تحت استاندارد IEFT یا Internet Engineering Task Force  روی پورت شماره‌ی ۲۲ فعالیت می‌کند، این پروتکل در حال حاظر در دو نسخه‌ی SSH-1 و SSH-2 در اکثر سیستم‌عامل‌ها در دسترس است، این پروتکل یک ساختار (Client/Server) دارد، بدین معنا که برای اجرا باید هم روی سرور و هم روی رایانه‌ی کاربر نصب شده باشد، این فناوری در حقیقت از ۳ مجموعه ابزار به شرح زیر تشکیل شده است که عبارتند از:

  • SLOGIN یا Secure Login: به معنای ورود امن به سیستم‌های مبتنی بر یونیکس.
  • SSH یا Secure Shell: به معنای پوسته‌ی امن برای رد و بدل کردن دستورات.
  • SCP یا Secure Copy: به معنای کپی و رونوشت کردن امن اطلاعات.

رمزنگاری اطلاعات در SSH به چه معناست؟

در حقیقت این پروتکل اطلاعات رد و بدل شده میان رایانه‌ی مبدا و مقصد را با الگوریتم RSA Public Key  کد گذاری می‌کند، به طور خلاصه با استفاده از این الگوریتم، اطلاعات تنها با داشتن کلید تبادلی معتبر خواهند بود و در غیر این‌صورت یه هیچ‌وجه قابل خواندن و کدگشایی نیستند و از آن‌جایی که این کلید تنها در اختیار رایانه‌های مبدا و مقصد است امنیت اطلاعات در بین مسیر حفظ خواهد شد.

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

این تکنولوژی چندین قابلیت مختلف و کاربردی جهت حفظ امنیت اطلاعات در اختیار استفاده کنندگان قرار می‌دهد که عبارتند از:

  • امکان تایید کاربران
  • ایجاد تونل امن در بستر TCP/IP
  • انتقال خودکار اتصالات برقرار شده
  • امکان تایید خارجی کاربران
  • انتقال فایل امن و محافظت شده

برخی از اصطلاحات رایج در SSH:

حال که کمی با مفهوم و نحوه‌ی عملکرد SSH آشا شدیم، بد نیست با چند اصطلاح رایج در این زمینه آشنا شویم:

  • SSH: نشان‌دهنده‌ی پروتکل SSH (با حروف بزرگ)
  • ssh: نشان دهنده‌ی نرم‌افزار سمت کاربر ssh (با حروف کوچک)
  • SSHD: نشان‌دهنده‌ی Daemon این سرویس در لینوکس.
  • SSH1: اشاره به نسخه‌ی اولیه‌ی این پروتکل دارد.
  • SSH2: نسخه‌ی تجاری و غیر رایگان این پروتکل.
  • OPEN SSH: نسخه‌ی متن باز یا Open Source این پروتکل.

چگونه می‌توانیم به SSH در یک سرور متصل شویم؟

در سیستم‌عامل ویندوز نمی‌توانید به طور مستقیم به SSH متصل شوید، برای اتصال به این پروتکل به یک برنامه‌ی واسط به نام PuTTY احتیاج خواهید داشت (این برنامه اپن‌سورس است و می‌توانید به رایگان آن را دانلود کنید) پس از دانلود و نصب این نرم‌افزار با وارد کردن آدرس IP و پورت SSH (که به صورت پیش‌فرض پورت شماره‌ی ۲۲ است) می‌توانید به این پروتکل در سرور متصل شوید.

در سیستم‌عامل‌های لینوکس و مک می‌توانید به راحتی و بدون نیاز به نرم‌افزار جانبی، تنها از طریق محیط ترمینال به SSH در یک سرور متصل شوید، برای این منظور کافیست Terminal را باز کرده و دستورات زیر را در آن وارد کنید:

ssh root@serverip –p port

در دستور بالا می‌توانید به‌جای root نام‌کاربری خود در سرور و به جای serverip و port نیز به ترتیب آدرس سرور و شماره‌ی پورت SSH را وارد کنید.

در محیط اندروید نیز با استفاده از نرم‌افزاری به نام Connect Bot می‌توانید به پروتکل SSH در یک سرور از راه دور متصل شوید.