دسترسی به سرورهای راه دور و مدیریت آنها از دغدغه های اصلی مدیران فناوری اطلاعات است. Telnet برای برقراری ارتباط با یک سرور از راهدور استفاده میشود. Telnet یک پروتکل ایمن نیست، زیرا از هیچ مکانیزم امنیتی استفاده نمیکند و دادهها را از طریق شبکه(اینترنت) بصورت متن ساده انتقال میدهد. بنابراین هرکسی میتواند به اطلاعات این بستهها دسترسی داشته باشد. برای رفع این مشکل SSH بوجود آمد.
پروتکل SSH که با نامSecure Shell یا Secure Socket Shellنیز شناخته میشود. یک پروتکل شبکه است که راهی امن برای دسترسی به رایانههای راه دور به مدیران ارائه میدهد.
پروتکل SSH یک اتصال امن رمزگذاری شده بین کلاینت و سرور برقرار میکند. امکان احرازهویت هر طرف را به طرف دیگر میدهد و دستورات را بین آنها رد و بدل میکند.
پروتکل SSH از رمزنگاری متقارن، نامتقارن و هش کردن به منظور اطمینان از انتقال ایمن اطلاعات استفاده میکند. اتصال SSH بین کلاینت و سرور در سه مرحله اتفاق میافتد:
که هر کدام را بطور جداگانه توضیح میدهیم.
کلاینت اتصال SSH را با سرور آغاز میکند. سرور به درگاه پیش فرض 22 (این درگاه بهتر است، برای امنیت بیشتر تغییر کند.) برای اتصالات SSH گوش می دهد. هویت سرور به دو صورت ممکن است تأیید شود.
اگر کلاینت برای اولین بار به سرور دسترسی پیدا میکند، از کاربر خواسته میشود تا با تأیید کلید عمومی سرور، به طور دستی سرور را احراز هویت کند. کلید عمومی سرور را میتوان با استفاده از دستور ssh-keyscan پیدا کرد و یا آن را در مکانهای مختلف پیدا کرد(مثلا در Google) .پس از تأیید، کلید سرور در فایل known_hosts درمسیر ~/.ssh در کلاینت اضافه میشود. فایل known-hosts حاوی اطلاعاتی دربارهی همه سرورهای تأیید شده توسط کاربر است.
اگر کلاینت برای اولین بار نیست که با سرور ارتباط برقرار میکند، هویت سرور با اطلاعات ثبت شده در فایل known-hosts مطابقت داده شده و در صورت وجود تأیید میشود.
پس از تأیید سرور توسط کلاینت، یک کلید مشترک session-key بین کلاینت و سرور براساس الگوریتم Diff-Hellman تولید میشود، که مبنای رمزنگاری ارتباط بین دو طرف است. این الگوریتم به گونهای طراحی شده است که هر دو طرف بطور مساوی در تولید کلید مشارکت دارند. session-key یک کلید متقارن مشترک است. یعنی از همان کلید برای رمزگذاری و رمزگشایی استفاده میشود.
در گام آخر احراز هویت کلاینت توسط سرور است. تأیید هویت با استفاده جفت کلیدSSH انجام میشود .جفت کلید شامل کلید عمومی و کلید خصوصی است. کلید عمومی برای رمزگذاری دادهها استفاده میشود و کلید خصوصی برای رمزگشایی دادهها استفاده میشود و هرگز با کسی به اشتراک گذاشته نمیشود.
پس از رمزگذاری متقارن احراز هویت کلاینت به صورت زیر است:
نامتقارن بودن کلیدها اجازه تایید کاربر را میدهد، زیرا کاربر تنها درصورت داشتن کلید خصوصی مربوطه میتواند پیامها را رمزگشایی کند.
ارتباط امن بین کلاینت و سرور برقرار میشود.
منبع: پایگاه دانش شرکت رایانش ابری آوید