احتمالاً قبلاً در مورد SSH شنیده اید. اما شاید دقیق ندانید ssh چیست؟SSH یک اصطلاح رایج اینترنتی است که اغلب در مورد هر چیزی که به امنیت سایبری مربوط می شود، مورد استفاده قرار می گیرد. برای خرید هاست لینوکس ایران از آسمان هاست کلیک کنید.
کامپیوترها از طریق شبکه با یکدیگر صحبت می کنند. از این رو، محققان شبکه مجموعه ای از قوانین را برای برقراری ارتباط با ماشین های دیگر تعریف کردند و شروع به توسعه پروتکل هایی مانند Telnet کردند. با استفاده از آن، یک کاربر می تواند کنترل کامپیوتر دیگری را در دست بگیرد. اما آنها امن نیستند، به عنوان مثال، هر کسی در شبکه می تواند داده های در حال انتقال را رهگیری کرده و بخواند. در اواسط دهه 90، یک پروتکل امن تر به نام ssh به عنوان جانشین قابل اعتماد پروتکل telnet معرفی شد.
انتقال داده بین دستگاه های موجود در شبکه باید تنظیم شود تا دستگاه ها به درستی ارتباط برقرار کنند. این اانتقال با مجموعه ای از قوانین به نام پروتکل شبکه انجام می شود. در گذشته پروتکل های اولیه شبکه مانند Telnet و rsh محافظت کافی در برابر حملات سایبری مخرب ارائه نمی دادند . بنابراین نیاز به یک روش ارتباطی شبکه ایمن تر باعث ایجاد پروتکل SSH شد. با این حال، ممکن است دقیقا ندانید Sshچیست؟ ( به دلیل شباهت بعضی از مواقع با ssl به صورت گفتاری اشتباه گرفته میشود که میتوانید در مقاله تفاوت میان ssl و tls درباره آنها اطلاعات بیشتری کسب کنید )

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

لایه احراز هویت
روش های تأیید اعتبار پشتیبانی شده را به مشتری منتقل می کند. همچنین کل فرآیند احراز هویت کاربر را انجام می دهد.
لایه اتصال
پس از موفقیت آمیز بودن احراز هویت، ارتباط بین ماشین ها را مدیریت می کند. باز و بسته شدن کانال های ارتباطی را کنترل می کند و چندین کانال را برای جلسات متعدد امکان پذیر می کند.
SSH برای چه مواردی استفاده می شود؟
SSH یک لایه امنیتی برای انتقال اطلاعات بین سیستم ها فراهم می کند. برخی از موارد استفاده مهم برای SSH عبارتند از:
- دسترسی از راه دور: SSH اتصالات از راه دور رمزگذاری شده را برای کاربران و فرآیندها تضمین می کند.
- انتقال فایل: SFTP یک پروتکل امن انتقال فایل است که توسط SSH مدیریت می شود، راهی امن برای دستکاری فایل ها از طریق شبکه فراهم می کند.
- انتقال پورت: با نگاشت پورت کلاینت به پورت های راه دور سرور، SSH به ایمن سازی پروتکل های دیگر شبکه مانند TCP/IP کمک می کند.
- مدیریت شبکه: پروتکل SSH زیرساخت شبکه و سایر بخش های سیستم را مدیریت می کند.

ssh چیست؟ و چگونه کار می کند؟
یک پروتکل مبتنی بر کلاینت – سرور است. این به این معنی است که پروتکل به دستگاهی که درخواست اطلاعات یا خدمات (سرویس گیرنده) می کند اجازه می دهد تا به دستگاه دیگری (سرور) متصل شود.
SSH شامل یک سرور و یک مشتری است. برای ایجاد یک کانال SSH ایمن، فرآیند ارتباط سرور و مشتری شامل مراحل زیر است:
ایجاد اتصال
سرور SSH به درخواست اتصال ارسال شده توسط مشتری در یک پورت خاص گوش می دهد. پس از اینکه کلاینت درخواست اتصال را به سرور ارسال کرد، یک اتصال TCP بین مشتری و سرور تنظیم می شود.
مذاکره نسخه
SSH از روش های احراز هویت بیشتر و روش های تبادل کلید پشتیبانی می کند و قابلیت های سرویس را بهبود می بخشد. سرور SSH و کلاینت برای تعیین نسخه SSH مورد استفاده با یکدیگر مذاکره می کنند.
مذاکره الگوریتم
SSH از چندین الگوریتم رمزگذاری پشتیبانی می کند. بر اساس الگوریتم هایی که توسط دو طرف پشتیبانی می شوند، آن ها یک الگوریتم تبادل کلید برای تولید کلیدهای جلسه، الگوریتم رمزگذاری برای رمزگذاری دادهها، الگوریتم کلید عمومی برای امضای دیجیتال و احراز هویت، و الگوریتم HMAC برای حفاظت از یکپارچگی دادهها مذاکره می کنند.
تعویض کلید
سرور و سرویس گیرنده از یک الگوریتم تبادل کلید برای تولید پویا یک کلید جلسه مشترک و شناسه جلسه استفاده می کنند که برای ایجاد یک کانال رمزگذاری شده استفاده می شود. کلید جلسه برای رمزگذاری داده های بعدی برای انتقال استفاده می شود و شناسه جلسه برای شناسایی اتصال SSH مربوطه در حین احراز هویت استفاده می شود.
احراز هویت کاربر
کلاینت درخواست احراز هویت را به سرور ارسال می کند و سپس سرور کلاینت را احراز هویت می کند. SSH از حالت های احراز هویت زیر پشتیبانی می کند:
احراز هویت رمز عبور
مشتری نام کاربری و رمز عبور رمزگذاری شده را به سرور ارسال می کند. سرور نام کاربری و رمز عبور را رمزگشایی می کند، آنها را به ترتیب با نام کاربری و رمز عبور ذخیره شده محلی مقایسه می کند و پیام موفقیت یا عدم موفقیت احراز هویت را به مشتری برمی گرداند.
احراز هویت کلید عمومی
مشتری از نام کاربری، کلید عمومی و الگوریتم کلید عمومی برای تبادل داده ها با سرور برای احراز هویت استفاده می کند.
رمز عبور + احراز هویت کلید عمومی
مشتری تنها پس از احراز هویت توسط سرور با استفاده از احراز هویت رمز عبور و تأیید هویت کلید عمومی می تواند وارد سیستم شود.
برای کلاینت احراز هویت رمز عبور یا تأیید اعتبار کلید عمومی لازم است.
درخواست جلسه
پس از موفقیت آمیز بودن احراز هویت، سرویس گیرنده SSH یک درخواست جلسه به سرور ارسال می کند و از سرور درخواست می کند تا نوع خاصی از خدمات را ارائه دهد. یعنی کلاینت SSH درخواست می کند که یک جلسه با سرور برقرار کند.