SSH که مخفف کلمههای Secure Shell و Telnet که مخفف کلمههای TeleNetwork است دو پروتکل شبکه شناخته شده برای مدیریت کردن تجهیزات شبکه و سرورها از راه دور هستند. با استفاده از این ابزارها شما میتوانید بصورت پیکربندیهای مربوط به دستگاههای عنوان شده را براحتی و از طریق خط فرمانی که ارائه میکنند انجام دهید. این دو ابزار در عمل هیچ تفاوتی با همدیگر ندارند و شما هر کاری که توسط SSH میتوانید انجام دهید با استفاده از Telnet قادر به انجام آن هستید اما مهمترین تفاوت بحث امنیت است. Telnet هیچگونه مکانیزم امنیتی ندارد ، رمز عبور شما زمانیکه از Telnet برای اتصال به دستگاه مورد نظر استفاده میکنید بصورت رمزنگاری نشده یا در اصطلاح فنی Clear Text رد و بدل میشود و یک هکر میتوانید این رمز عبور را به سادگی در شبکه شنود کرده و اطلاعات احراز هویتی شما را بدست بیاورد. اما زمانیکه شما از SSH استفاده میکنید رمز عبور شما بصورت رمزنگاری شده منتقل میشود و مهاجم نمیتواند محتویات آن را شناسایی و رمز عبور را پیدا کند.
پروتکل Telnet بصورت ذاتی برای استفاده در شبکههای خصوصی و محرمانه طراحی شده است و به همین دلیل تمامی دادههایی که توسط این پروتکل منتقل میشوند بصورت Plain Text یا رمزنگاری نشده منتقل میشوند که این شامل تمامی اطلاعات هویتی از جمله نام کاربری و رمز عبور مورد استفاده نیز میشود. این به عنوان یک نقطع ضعف امنیتی برای Telnet همیشه همراه این پروتکل بوده است تا اینکه برنامهنویسان و طراحان SSH بر روی همین پروتکل یک مکانیزم رمزنگاری قرار دادند تا اطلاعات در حین انتقال رمزنگاری و غیرقابل شوند شود. علاوه بر این رمز نگاری SSH به شما امکان دیگر امنیتی به نام احراز هویت یا Authentication را نیز میدهد. با استفاده از این مکانیزم شما میتوانید مطمئن باشید که منبع دادهها همان دستگاهی است است که از ابتدا به آن متصل شدیم و دستگاه دیگری در این میان در بین ارتباط قرار نگرفته است. بدون قابلیت احراز هویت یا Authentication یک شخص دیگر میتواند در میان ارتباط اختلال ایجاد کرده و خودش را میان ارتباط قرار داده و هر کاری که دلش خواست انجام دهد. با توجه یه اینکه در SSH از قابلیت Public Key برای رمزنگاری و احراز هویت دستگاه Source استفاده میشود احتمال بروز چنین مشکلی در SSH بسیار ضعیف است.
با توجه به مکانیزمهای امنیتی تعبیه شده در پروتکل SSH برای استفاده در مکانهای عمومی ، در هر بسته اطلاعاتی که توسط SSH ارسال میشود میزان دادههای انتقالی کاهش پیدا کرده است تا تمهیدات امنیتی لازم بتوانند خودشان را درون بسته اطلاعاتی جای بدهند. برای انتقال دادن مقدار مساوی اطلاعات توسط پروتکلهای SSH و Telnet طبیعی است که زمان بیشتری صرف خواهد شد. طبیعی است که بالا رفتن این زمان پهنای باند بیشتری نیز صرف خواهد شد که همین موضوع باعث بالا رفتن Overhead در شبکه میشود که یک مشکل اساسی در خصوص استفاده از SSH محسوب میشود. مشکل امنیتی که در Telnet وجود دارد باعث شده است که بسیاری از افراد رو به سمت استفاده از SSH به عنوان یک جایگزین بروند. پروتکل Telnet بسیار سریع بود و شاید اگر این مشکل امنیتی را نداشت براحتی از ان همچنان استفاده میشد. اگر چه هنوز بصورت کلی Telnet منسوخ نشده است و در بسیاری از جاها همچنان از آن استفاده میشود ، اما بیشتر استفاده از این ابزار به منظور آزمایش و دیباگ کردن است و قاعدتا نباید به عنوان یک ابزار اصلی در کار مورد استفاده قرار بگیرد. جالب اینجاست که وصلههای امنیتی جدیدی برای امن کردن Telnet ایجاد شد اما در نهایت نتوانست بصورت کامل این پروتکل را امن کند و همین موضوع باعث منزوی شدن همه روزه این پروتکل شد ، بصورت خلاصه میتوانیم تفاوت بین Telnet و SSH را به شکل زیر عنوان کنیم :
SSH و Telnet هر دو به یک منظور مورد استفاده قرار میگیرند
- SSH بسیار بسیار امن تر از Telnet است
- SSH دادهها را رمزنگاری میکند در حالیکه Telnet دادهها را بصورت رمزنگاری نشده ارسال میکند.
- SSH از ساختار Public Key برای احراز هویت استفاده میکند اما Telnet هیچگونه ساختار احراز هویتی ندارد.
- SSH باعث ایجاد شدن Overhead و مصرف بیشتر پهنای باند به نسبت Telnet میشود.
- امروزه Telnet بصورت عمده ای توسط SSH جایگزین شده است.