ssh چیست و چه کاربردی دارد؟
برای حل کردن چالشهای مدرن به رویکردهای امنیتی مدرن نیاز است. حملات سایبری بهقدری قدرتمند شدهاند که دیگر صرف احراز هویت با رمز عبور قابل قبول نیست. این گذرواژههای چند کاراکتری نمیتوانند امنیت یک سازمان بزرگ را تضمین کنند و باید راه دیگری برایش پیدا کنیم. چیزی شبیه پروتکل ssh. میپرسید ssh چیست؟
یک پروتکل ارتباطی ایمن که در درجه اول توسط مدیران شبکه برای اتصال ایمن به دستگاههای راه دور مورد استفاده قرار میگیرد؛ اما عملکردهای دیگری هم دارد که آشنایی با آنها خالی از لطف نیست.
در ادامه همراه ما باشید نگاه دقیقتری به جزئیات پروتکل ssh بیندازیم.
SSH چیست؟

برای درک ssh باید به هاستینگ وبسایت و نیاز دسترسی به سرور فکر کنید.
SSH مخفف Secure Shell به معنای پوسته امن است و میتوان آن را یک مکانیسم امنیتی در نظر گرفت که توسط خدمات میزبانی ارائه میشود. این پوسته از طریق اینترنت یک اتصال امن به سرور فراهم میکند که کاملا رمزگذاری شده و باید در هر دو انتها (در سرور و رایانه) احراز هویت شود. این یعنی اگر کسی بسته دادهای که شما به سرور میفرستید را رهگیری کند، نمیتواند به اطلاعات آن دسترسی داشته باشد.
این اتفاق به لطف سیستم رمزگذاری این پوسته امن اتفاق میافتد. در واقع فقط سرور و رایانهای که به هم متصلاند، کلید رمزگشایی پیامها را دارند. به این ترتیب توسعهدهندگان وبسایت میتوانند هر زمان لازم باشد بدون به خطر انداختن امنیت اطلاعات، تغییراتی ایجاد کنند.
در دنیای امروز رد پای SSH در تمامی سرویسهای حرفهای دیده میشود و شرکتها و متخصصان فناوری اطلاعات به وفور از مزایای آن بهره میبرند. بیایید ببینیم نحوه عملکرد پروتکل ssh چیست.
نگاهی مختصر به تاریخچه SSH
SSH اولین بار در سال ۱۹۹۵ توسط Tatu Ylönen توسعه یافت و هدف از طراحی و اجرای این پروتکل جلوگیری از حملات شناسایی رمز عبور در دانشگاه فناوری هلسینکی بود. اولین نسخه که امروز بهنام SSH-1 شناخته میشود، معرفی شد تا جای پروتکلهای ناامنی همچون rsh، rlogin و Telnet را بگیرد. این پروتکل اوایل بهعنوان یک نرم افزار رایگان شروع به کار کرد؛ اما خیلی زود به یک نرم افزار اختصاصی تبدیل شد.
با افزایش محبوبیت SSH در سراسر دنیا، کارگروه مهندسی اینترنت (IETF) گروهی را گرد هم آورد تا یک پروتکل جانشین طراحی کنند. در سال 2006، SSH-2 به یک استاندارد جدید تبدیل شد که نسبت به نسخه اولیه این پروتکل پیشرفت های امنیتی خیرهکنندهای داشت. مثل قابلیت تبادل کلید Diffie-Helman
جامعه متنباز OSSH، یک نسخه پروتکل SSH بر اساس نسخه 1.2.12 SSH-1 توسعه داد. بعدها توسعهدهندگان OpenBSD تلاش کردند با فورک کردن OSSH، OpenSSH را پیادهسازی کنند. محبوبترین ورژن SSH که تا امروز در تمام دنیا معرفی و شناخته شده است! OpenSSH از نسخه 7.6 به بعد فقط SSH-2 را پشتیبانی میکند و پشتیبانی از SSH-1 را به طور کامل کنار گذاشته است.
چه زمانی از ssh استفاده میکنیم؟
شاید بپرسی چه زمانی باید از ssh استفاده کنیم؟ اصلا انگیزه استفاده از ssh چیست؟
این پروتکل در تمام مشاغل مثل طراحی و توسعه یا برنامهنویسی سایت که نیاز باشد اتصالی امن با سرور راه دور برقرار شود، مورد استفاده قرار میگیرد.
در مورد برنامه نویسی از این پروتکل برای ساخت وبسایتها استفاده میشود. کدنویس با نوشتن کدها تغییراتی ایجاد میکند و رفتار سایت را روی بستر آنلاین تست میکند. در طول این فرایند چندین بار تبادل اطلاعات با سرور راه دور اتفاق میافتد؛ از این رو امنیت کد یک اتفاق فوقالعاده مهم است که باید تضمین شود. ssh این عمل را انجام میدهد و تضمین میکند که مالکیت معنوی متخصصان و سرمایهگذاری مشتری کاملا امن خواهد بود.
کاربرد دیگر این پوسته امن در استقرار (Deploy) است که به بهروزرسانی وبسایت ربط دارد. از آنجا که استقرار اغلب یک عمل طولانی است و طی آن فایلهای زیادی باید منتقل شوند، برای این تبادل داده به یک روش امن نیاز است. بنابراین متخصصان با بهکارگیری پروتکل SSH تضمین میکنند انتقال برنامهها و تغییرات جدید به موقع و بدون از دست رفتن اطلاعات انجام شود.
نحوه عملکرد ssh چیست؟

هدف SSH در یک کلام فراهم کردن فرایند احراز هویت برای کاربران راه دور است تا بتوانند بهطور کاملا ایمن با سرور ارتباط برقرار کنند. در این میان برای محافظت از دادههای ارسالی، صرف نظر از سیستم عامل مورد استفاده، باید از طریق ترمینال به SSH دسترسی ایجاد شود.
برای باز کردن اتصالات روی سیستم عامل ویندوز به یک کلاینت SSH نیاز دارید. این نرم افزار امکان دسترسی از راه دور به سرور را با ترمینال SSH فراهم میکند. اما اگر سیستم عامل لینوکس یا مک باشد، ترمینال فرمانی که روی سیستم نصب است، عملکردهای سرویس گیرنده SSH را دارد.
ممکن است سرویس هاستینگ شما بهطور پیشفرض دسترسی SSH را غیرفعال کرده باشد؛ بنابراین از قبل باید این اتصال را روی کنترل پنل سرویس یا به کمک پشتیبانی فنی فعال کنید. اکنون برقراری ارتباط از طریق ترمینال SSH با سرور امکانپذیر خواهد بود.
برای مطالعه بیشتر مقاله منظور از کلاینت چیست را پیشنهاد می کنیم.
رمزگذاریهای قابل استفاده در پروتکل ssh چیست؟
گفتیم که فایلهایی که روی این پروتکل به سرور راه دور ارسال میشوند، همگی با رمزگذاری تحت محافظت قرار میگیرند. اما چه نوع رمزگذاری؟ سه نوع مختلف رمزگذاری روی این پروتکل قابل استفاده است که در ادامه به معرفی آنها میپردازیم.
۱. رمزگذاری متقارن
در این نوع رمزگذاری یک کلید تولید میشود و این کلید فقط بین کاربر و سرور اشتراک گذاشته میشود. وظیفه این کلید رمزگذاری یا رمزگشایی پیامهاست و برای رهگیری پیامها ارائه آن ضروری است. مسئولیت ایجاد و ارسال کلید رمزگذاری برعهده الگوریتم خاصی است که با هر بار ایجاد جلسه ssh توسط کاربر، یک کلید جدید میسازد.
۲. رمزگذاری نامتقارن
در این نوع رمزگذاری دو کلید مختلف یکی برای سرور و دیگری برای کاربر ایجاد میشود. این کلیدها عمومی و خصوصی نامیده میشوند. کلید عمومی به صورت باز توزیع میشود و امکان شناسایی کلید خصوصی از طریق آن وجود ندارد.
در این حالت، محتویاتی که توسط کلید عمومی رمزگذاری میشوند، فقط توسط کلیدهای خصوصی همان دستگاه قابل رمزگشایی هستند. یعنی فقط کلاینت سرویس هاستینگ میتواند به کلید خصوصی دسترسی داشته باشد.
۳. هش کردن
هش کردن یک مدل رمزگذاری یک طرفه است که در آن یک الگوریتم برای محافظت از پیامها یک کد هش ایجاد میکند. کدهای احراز هویت پیام مبتنی بر هش (HMAC) جلوی هرگونه دستکاری کدهای ارسالی به سرور راه دور را میگیرند.
چرا باید از ssh استفاده کنیم؟
سوال دیگری که معمولا ذهن کاربران را درگیر میکند، این است که چرا باید از ssh استفاده کنیم؟ مزیتهای پروتکل ssh چیست؟
گاهی در برخی شرایط خاص استفاده از پروتکل SSH ضروری است. بهعلاوه مزیتهایی دارد که نمیتوان از آنها چشمپوشی کرد. برخی از مهمترین آنها عبارتاند از:
- چابکی: با استفاده از ترمینال فرمانی که لازمه استفاده از پروتکل SSH است، کاربر میتواند بسیاری از دستورات را طوری اجرا کند که گویی عملیات مستقیما روی سرور انجام شده است.
- فشردهسازی دادهها: قبل از ارسال پیام به سرور، SSH داده ها را فشرده میکند تا سرعت انتقال افزایش یابد و پهنای باند اینترنت ذخیره شود.
- خدمات استقرار: پروتکل SSH با سرویسهای استقرار اصلی که توسعهدهندگان برای کنترل نسخههای برنامههای خود استفاده میکنند، سازگار است.
- امنیت شبکه: فراتر از همه موارد بالا، دلیل اصلی استفاده از SSH بحث امنیت است. با وجود رمزگذاریهای این پروتکل، پیامها در دسترس اشخاص ثالث قرار نمیگیرند.
تفاوت SSH1 و SSH2 چیست؟
Ssh دو نسخه دارد. ssh1 و ssh2. همانطور که انتظار میرود پروتکل ssh2 امنتر است، بیشتر در برابر مهاجمان و شنودکنندگان از دادهها محافظت میکند، از الگوریتمهای رمزگذاری قویتری پشتیبانی میکند و با انبوهی از پیشرفتهای مثبت نسبت به پروتکل اصلی ssh روانه بازار شده است.
OpenSSH چیست؟
OpenSSH یک نسخه بسیار پرکاربرد از پوسته امن است که در اختیار کاربران قرار میگیرد.
نسخه اصلی SSH توسط Tatu Ylönen توسعه یافت که کاملا انحصاری بود. یعنی کاربران باید برای استفاده از آن هزینه میکردند و مجاز به اجرای تغییر در پروتکل نبودند. از اینرو تیمی از توسعهدهندگان نسخه رایگان اصلی SSH را فورک کردند و نام آن را OpenSSH گذاشتند که اکنون به عنوان بخشی از OpenBSD (یک سیستم عامل منبع باز) توسعه یافته و در اختیار کاربران قرار دارد. همه سیستم عاملهای اصلی مانند ویندوز، macOS و انواع توزیعهای لینوکس از OpenSSH پشتیبانی میکنند.
آیا SSH همان SSL/TLS است؟
Ssh و ssh هر دو امنیت شبکهای که قبلا نا امن بود را فراهم میکنند؛ اما تفاوت SSL/TLS و ssl چیست؟ این دو مفهوم کاملا با یکدیگر متفاوتاند.
لایه سوکت ایمن (SSL) و جانشین، امنیت لایه حمل و نقل (TLS) یک تونل ارتباطی رمزگذاری شده فراهم میکنند که دادهها را در نهایت امنیت به سرور منتقل شوند. در واقع SSL و TLS پروتکلهای لایه کاربردی هستند و ارتباطات را برای خدمات کاربر نهایی استاندارد میکند. یعنی هدف از معرفی آنها محافظت از اتصال داده است؛ در حالی که ssh برای اجازه دسترسی ایمن از راه دور و اجرای فرمان معرفی شده است.
اگرچه این هر دو پروتکل قابلیت رمزگذاری را ارائه میکنند، هدف این دو با هم متفاوت است. البته کاربران میتوانند از ssh در کنار ssl برای انتقال فایلها استفاده کنند و مانعی وجود ندارد.
خطرات سوء استفاده از کلید ssh چیست؟

تا اینجا درباره اهمیت ssh وکاربردهای آن حرف زدیم؛ اما اشارهای به خطرات این پروتکل نکردیم. از خودتان نپرسیدید خطرات سوء استفاده از کلید ssh چیست؟
ردیابی نامناسب کلید ssh
اکثر سازمانها از تعداد زیاد کلیدهای ssh که نگه میدارند، کاملا بیخبرند و آنها را ردیابی و مدیریت نمیکنند. کلیدهای مدیریت نشده سازمان را در معرض خطرات قابل توجهی قرار میدهد و میتواند سیستمهای اطلاعاتی حیاتی را برای ماهها از بین ببرد.
مهاجمی که این کلیدها را پیدا کند، دسترسی روت سیستم عامل را دارد میتواند اعمال دلخواه خود را روی سرور انجام دهد. از تزریق دادههای جعلی گرفته تا براندازی نرمافزار رمزگذاری، نصب بدافزارها یا نابود کردن کامل سیستم، همهچیز در اختیار مهاجم است و تمام ویژگیهای محرمانگی، یکپارچگی و تداوم عملیات به خطر افتاده است. حتی اگر پیدا کردن کلید به مهاجم دسترسی غیر روت بدهد، آسیبپذیریهای ناشی از آن قابل توجه است.
اشتراک گذاری مکرر کلیدهای SSH
متأسفانه، برخی از کارمندان تصور میکنند میتوانند کلیدها را بی هیج مشکلی کپی کنند و هر بار از همان قبلیها استفاده کنند. در حالی که مهاجمان برای دسترسی به شبکه فقط به چند کلید نیاز دارند و اگر یکی از کلیدها چند بار استفاده شود، کار سیستم تمام است. به همین خاطر اشتراکگذاری کلید ssh یکی از مهمترین مسائلی است که باید به دقت نظارت شود.
کلیدهای ثابت و تعبیه شده
متخصصان امنیتی و مدیران فناوری اطلاعات اغلب کلیدها را تغییر نمیدهند؛ چون میترسند آنها را فراموش کنند. این کار کلیدهای ثابت زیادی ایجاد میکند که پیدا کردن آنها راه ورود مهاجمان سایبری را باز میکند. حتی گاهی کلیدهای تعبیه شده در اسکریپتها و برنامهها نیز ثابت و بیتغییرند. چون افراد درکی از کد اصلی ندارند و نمیخواهند اختلالی در سیستم به وجود آورند. در حالی که این کلیدهای ثابت یکی از آسیبپذیریهای بزرگ پروتکل ssh است.
شماره پورت SSH چیست؟
وقتی SSH روی STelnet، SFTP و SCP اعمال میشود، شماره پورت پیشفرض آن 22 است. وقتی SSH روی NETCONF اعمال میشود، میتوان شماره پورت را روی 22 یا 830 تنظیم کرد. البته پورت SSH قابل تغییر است. اما پس از تغییر، تمام اتصالات فعلی آن قطع میشود و از آن پس سرور SSH به پورت جدید گوش میکند.
وظیفه سرور SSH چیست؟
سرور SSH بهعنوان یک برنامه روی دستگاهی که قصد داریم به آن متصل شویم، اجرا میشود. از آنجا که سرور SSH دروازه ورود به دستگاه شماست، توصیه میکنیم با ارزیابی مجدد آن مطمئن شوید که تمام فعالیتهای SSH ممیزی شده و لاگها قابل دستکاری نباشند. اگرچه var/log/auth.log برخی از اطلاعات اولیه را درمورد یک جلسه SSH ارائه میدهد، ممکن است این دادهها در طول سشن از دست برود. از این رو بهتر است جلسات SSH را ضبط کنید. حتی اگر چند هاست دارید، پیشنهاد میکنیم برای جلوگیری از حملات بروت فورس، محکمکردن SSH را امتحان کنید.
تفاوت بین SSH و Telnet
Telnet اولین پروتکل برنامه کاربردی اینترنتی بود که برای ایجاد و نگهداری یک جلسه ترمینال روی میزبان راه دور استفاده شد. میتوان گفت SSH و Telnet عملکرد مشابهی دارند و مهمترین فرق میان آنها این است که پروتکل SSH با رمزنگاری کلید عمومی ایمن میشود و اندپوینت را موقع تنظیم سشن ترمینال تایید میکند. در حالی که روی تلنت هیچ گونه احراز هویتی برای کاربران وجود ندارد و امنیت آن به مراتب کمتر است. به همین خاطر پروتکل SSH بیشتر برای شبکههای عمومی و Telnet برای شبکههای خصوصی مناسب است.
از طرفی SSH دادههای رمزگذاری شده را ارسال میکند، در حالی که دادههای ارسالی توسط Telnet در قالب یک متن ساده ارسال میشوند. یک تفاوت دیگر میان این دو مربوط به شماره پورت آنهاست. همانطور که اشاره شد، پروتکل SSH به طور پیش فرض روی پورت شماره 22 اجرا میشود؛ در حالی که Telnet از پورت شماره 23 استفاده میکند.
پروکسی چیست؟ برای آشنایی بیشتر می توانید مقاله مورد نظر را مطالعه نمایید.
کلام آخر
SSH را میتوان یکی از پیچیدهترین پروتکلهای شبکه معرفی کرد که شاید درک آن چند دقیقه اول برای همه راحت نباشد؛ اما طرفداران بسیار زیادی دارد و علت آن هم کاملا مشخص است: تمام ارتباطات بین سرویس گیرنده SSH و سرور کاملاً رمزگذاری شده است و امنیت را به بهترین شکل ممکن تضمین میکند.
این پروتکل ذاتا بینقص نیست. آسیبپذیریهایی دارد که نباید از آنها غافل شد. اما همچنان بهتر از سایر روشهای احراز هویت عمل میکند. طوری که میتوان آن را یک گزینه عالی برای تمام کسب و کارهایی معرفی کرد که در پی یک روش کاملا حفاظتشده برای اشتراکگذاری فایلها و برقراری ارتباط با سرور هستند.
امیدواریم بعد از مطالعه این راهنما بدانید ssh چیست، چطور کار میکند، چه کاربردی دارد و حین استفاده از آن باید مراقب چه خطراتی بود. اگر شما خوانندههای عزیز اطلاعات بیشتری درباره این پروتکل دارید، خواهشمندیم نظراتتان را با ما در میان بگذارید.
دیدگاهتان را بنویسید