پروتکل SSH چیست و چگونه کار میکند؟
شاید این سوال برای شما بهوجود آمده باشد که پروتکل SSH چیست و چه مفهومی دارد؟ پروتکل SSH مخفف عبارت Secure Shell بوده و بهمعنی روشی برای ورود از راه دور از یک کامپیوتر به کامپیوتر دیگر است.
این روش از امنیت و یکپارچگی ارتباطات توسط رمزنگاری محافظت میکند. SSH یک جایگزین امن برای ورود پروتکلهای ناامن (مانند telnet و rlogin) و انتقال پروندههای نامطمئن (مانند FTP) است.
استفادههای متداول از پروتکل SSH
- فراهم کردن دسترسی امن برای کاربران
- انتقال فایلها بهصورت خودکار
- صدور فرمان از راه دور
- مدیریت زیرساخت شبکه و سایر اجزای سیستمی
پروتکل SSH چگونه کار میکند؟
تصویر زیر یک چیدمان ساده از اتصال امن را نشان میدهد:
تائید هویت با استفاده از کلیدهای SSH
روش کلید عمومی تائید هویت، اصولاً برای اتوماسیون و گاهی توسط مدیران سیستم بهکار میرود. این روش بیشتر از حد مورد انتظار موررد استفاده قرار گرفته است. ایدهی این روش این است که یک کلید رمزنگاری (کلید عمومی و کلید خصوصی) وجود داشته باشد و کلید عمومی بر روی یک سرور پیکربندی شده باشد تا به هر کسی که اجازه دسترسی داشته باشد و به هر کسی که یک کپی از دسترسی کلید خصوصی به سرور داشته باشد، کمک کند. کلیدهایی که برای تائید هویت استفاده میشوند، کلیدهای SSH نامیده میشوند.
بیشترین استفاده از کلید تائید هویت، در فعالسازی خودکار امنیت است. انتقال خودکار امنیت فایل Shell، برای ادغام اپلیکیشنها و همچنین برای سیستمهای خودکار و مدیریت پیکربندی استفاده میشود. مدیریت کلید SSH بهویژه برای سازمانهای بزرگ، از اهمیت بسیار بالایی برخوردار است. کلیدهای SSH همان دسترسیهایی که نام کاربری و رمز عبور میدهند را به ما خواهند داد.
پروتکل 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 در یک سرور از راه دور متصل شوید.