پروتکل SSH چیست؟ ارتباط امن در شبکه ناامن!

دسته بندی: آموزش, امنیت, شبکه و اینترنت
آموزش SSH

اطلاعات محرمانه شرکت X، توسط هکرها به سرقت رفت! اخبار این‌چنینی را کم نمی‌شنویم. چه باید بکنیم تا امنیت اطلاعات افزایش پیدا کند؟ می‌دانید پروتکل SSH چیست؟پروتکل SSH امنیت را افزایش میدهد

صحبت از یک پروتکل اینترنتی است که احتمال خطر را بسیار پایین می‌آورد. پروتکلی که به‌خاطر رمزنگاری‌ها و احراز هویت‌هایی که طلب می‌کند، امنیت بسیار بالایی دارد.

در صورت تمایل، می‌توانید مقاله پروتکل اینترنتی را قبل از شروع این مقاله بخوانید.

در این مقاله می‌خواهیم ببینیم SSH چیست؟ چه قابلیت‌هایی دارد؟ چرا ایمن است و …. ابتدا چیستی SSH!

پروتکل SSH چیست؟

در سال ۱۹۹۵، محقق فنلاندی با نام: Tatu Ylonen که در دانشگاه هلسینکی فعالیت می‌کرد، برای اولین بار SSH را به دنیا معرفی کرد. یک پروتکل ایمن که آمده بود تا جایگزین تمام پروتکل‌های ناامن گذشته شود. اتفاقاً در این زمینه بسیار موفق عمل کرد.

 SSH مخفف عبارت Secure Socket Shell است. یک پروتکل اینترنتی که کمک می‌کند دو کامپیوتر، از طریق روشی امن، روی یک شبکه ناامن به یکدیگر متصل شوند. 

به این ترتیب افراد می‌توانند با خیال راحت، از راه دور سیستم‌ها و اپلیکیشن‌ها را مدیریت کنند! آن‌ها می‌توانند به‌سادگی فرامین مختلف را روی سرور مقصد اجرا کنند، فایلی را از کامپیوتری به کامپیوتر دیگر منتقل کنند و ….

تا قبل از معرفی SSH، شناخته‌‌شده‌ترین راه‌ها برای ایجاد ارتباط بین دو سیستم، پروتکل‌های قدیمی‌تر مثل FTP و Telnet بودند. بزرگ‌ترین مشکل این پروتکل‌های قدیمی، ناامن بودن آن‌ها بود. احتمال زیادی وجود داشت که اتصال بین دو کامپیوتر و یا جابه‌جایی فایل، از طرف هکر یا هرکس دیگری که مجوز لازم را ندارد، به خطر بیفتد! SSH آمد که چنین فرایندهایی، در امنیت کامل انجام شوند.

کمیک ایمن بودن SSH

مقالات Telnet چیست و پروتکل با قدمت FTP، دو مقاله‌ای هستند که در آن‌ها، مفصل و عمیق راجع به این پروتکل‌ها حرف زده‌ایم.

در ضمن خوب است بدانید: منظور از کلمه SSH هم می‌تواند اشاره به ماهیت پروتکل باشد و هم می‌تواند اشاره به نرم‌افزارها و ابزارهایی باشد که برای پیاده‌سازی آن موردنیاز است.

دو نسخه از این پروتکل با نام‌های SSH-1 و SSH-2 عرضه شده‌اند که از سال ۲۰۰۶، نسخه جدیدتر یعنی، SSH-2 توسط IETF به‌عنوان استاندارد رسمی اینترنت معرفی شد. اصلی‌ترین تفاوت این دو نسخه، در این است که نسخه جدیدتر، سیستم‌ رمزنگاری پیشرفته‌تری دارد.

رمزنگاری یکی از عواملی است که امنیت را در این پروتکل تامین می‌کند.

چرا SSH، پروتکل ایمنی است؟

رمزنگاری و احراز هویت دلایل امنیت بالای SSH هستنداگر بخواهیم کلی بگوییم، SSH به دو دلیل رمزنگاری (Cryptography) و فرایند احراز هویت (Authentication) پروتکل ایمنی شده است.

 پروتکلی که تمام فرایندها را رمزنگاری می‌کند و از کلیدهای عمومی و خصوصی برای تائید هویت هر دستگاه و کاربر استفاده می‌کند، مسلماً بیشترین ایمنی را در برابر هرگونه رخنه امنیتی دارد! غیر از این است؟!

اینکه SSH چگونه کار می‌کند، بحثی است که جلوتر به آن می‌پردازیم. در این بخش می‌خواهیم ببینیم چرا SSH ایمن است؟! چراکه همین ایمنی باعث شده است تا این پروتکل به استاندارد دنیای اینترنت تبدیل شود!

همان‌طور که گفتیم، امنیت SSH دو عامل اصلی دارد، احراز هویت و رمزنگاری:

احراز هویت (Authentication)

به ساده‌ترین بیان، منظور از احراز هویت یا Authentication، تائید هویت کاربری است که قصد استفاده از یک سیستم، ورود به یک اکانت و … را دارد.

پروتکل SSH، هر دو طرف را برای احراز هویت زیر ذره‌بین می‌برد؛ یعنی هم دستگاه کاربری که قصد اتصال دارد و هم سروری که کاربر می‌خواهد به آن متصل شود.

پس برای ایجاد اتصال امن، ابتدا هویت کاربری که درخواست اتصال دارد مورد بررسی قرار می‌گیرد، پس از آن و در صورت تائید شدن هویت، اتصال با سروری که هویت آن هم مورد بررسی و تائید قرار گرفته، برقرار می‌شود.

احراز هویت یا Authentication هم توسط پسورد انجام می‌شود و هم توسط کلید عمومی یا Public Key! یعنی سرور یک کلید عمومی دارد. هر کاربری که کلید خصوصی آن را داشته باشد، توسط SSH احراز هویت می‌شود. به این کلیدها، SSH Keys هم می‌گویند.

رمزنگاری (Cryptoghraphy)

اصلی‌ترین دلیل ایمن بودن SSH، در کنار قابلیت احراز هویت، رمزنگاری شدن تمام داده‌ها در تمام فرایندهای این پروتکل است. وقتی قرار باشد پیامی از Client (سیستم کاربر) به Host (سرور مقصد) ارسال شود، داده‌ها رمزنگاری می‌شوند. به همین خاطر، افرادی که صلاحیت دسترسی به داده‌های انتقالی را نداشته باشند، نمی‌توانند از آن‌ها سوءاستفاده کنند.

 پروتکل SSH، از ۳ تکنولوژی برای رمزنگاری اطلاعات و داده‌ها استفاده می‌کند: 

۱) رمزنگاری متقارن (Symmetrical Encryption)

در این روش از رمزنگاری، هم برای رمزنگاری و هم برای رمزگشایی، از یک کلید واحد استفاده می‌شود. کلیدی که هر دو طرف Client و Host آن را در اختیار دارند. ساخت این کلید با الگوریتمی انجام می‌شود که Key Exchange Algorithm نام دارد.

البته گاهی ممکن است به‌جای یک کلید، از دو کلید استفاده شود. در چنین حالتی، کلید دوم به‌راحتی توسط کلید اول محاسبه و ساخته می‌شود!

توجه داشته باشید که  در رمزنگاری متقارن، کلید همراه با اطلاعات دیگر منتقل نمی‌شود. بلکه هر طرف با در اختیار داشتن همان الگوریتمی که بالاتر به آن اشاره کردیم، می‌توانند کلید را بسازند. 

از این شیوه برای رمزنگاری تمام فرایندهای پروتکل استفاده می‌شود.

حتما بخوانید:  پرستاشاپ (PrestaShop) چیست؟ چه وِیژگی‌های مهمی دارد؟

نکته: در این نوع از رمزنگاری، تمام داده‌ها و اطلاعاتی که قرار است از Client به Host بروند یا برعکس، باید توسط کلید خصوصی هم رمزنگاری شوند. در غیر این‌صورت، هکرها می‌توانند با برخی اقدامات، به آن‌ها دست پیدا کنند و واویلا!

رمزنگاری متقارن

۲) رمزنگاری نامتقارن (Asymmetrical Encryption)

برخلاف رمزنگاری متقارن، در شیوه نامتقارن از ۲ کلید جداگانه برای رمزنگاری و رمزگشایی استفاده می‌شود. یکی از آن‌ها کلید عمومی (Public Key) و دیگری کلید خصوصی (Private Key) نام دارد؛ یعنی اطلاعاتی که توسط یک کلید عمومی رمزنگاری شوند، فقط با استفاده از کلید خصوصی همان دستگاه رمزگشایی می‌شوند. حتی خود کلید عمومی هم پس از رمزنگاری، قابلیت رمزگشایی را ندارد!

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

در ضمن، برخلاف رمزنگاری متقارن که کل فرایند را با رموز پیچیده ایمن می‌کرد، رمزنگاری نامتقارن فقط برای ارسال Key Exchange Algorithm استفاده می‌شود.

همان الگورتیمی که به دستگاه کمک می‌کند تا کلید مدنظر را بسازد و از آن استفاده کند.

رمزنگاری نامتقارن

۳) هشینگ (Hashing)

پروتکل SSH، برای تائید درستی مبدا اطلاعات دریافت‌شده از هشینگ استفاده می‌کند.  Hash از کنار هم قرار گرفتن چندین عدد و حرف تشکیل می‌شود. اعداد و حروفی که هیچ معنایی نمی‌دهند، اما اطلاعات یا داده‌ای را در خود پنهان کرده‌اند. برای دسترسی به محتوای مخفی شده در هش، نیاز به کلید خصوصی است. 

این‌طور بگوییم: کلید عمومی، اطلاعات را رمزنگاری می‌کند؛ یعنی در واقع آن‌ها را به هش تبدیل می‌کند. این هش به مقصد می‌رسد و در آن‌جا با استفاده از کلید خصوصی رمزگشایی می‌شود. همین‌قدر ساده و راحت!

به‌کارگیری این ابزارها و فناوری‌ها، باعث ایمن شدن پروتکل SSH می‌شوند.

هشینگ

خب حالا وقت آن است که قابلیت‌های این پروتکل را با هم بررسی کنیم.

SSH چه قابلیت‌هایی دارد؟

در ابتدای مقاله، اشاره‌ای به اصلی‌ترین قابلیت پروتکل SSH کردیم؛ یعنی دسترسی به کامپیوتری از راه دور! اما آیا این پروتکل فقط محدود به همین قابلیت است؟ پاسخ یک نه بزرگ است!

قبل از اینکه سراغ قابلیت‌های مختلف SSH برویم، باید یک نکته مهم را بگوییم:

تمام نسخه‌ها و ورژن‌های SSH، دارای ۳ قابلیت اصلی هستند: Slogin، ssh و scp. در واقع این ۳ قابلیت، جایگزین نسخه‌های ناامن قبلی خود شده‌اند که در یونیکس استفاده می‌‌شدند: rlogin، rsh و rcp!

در ادامه شما را با توانایی‌های SSH آشنا خواهیم کرد:

۱) اتصال از راه دور

دسترسی از راه دورهمان‌طور که گفتیم، قابلیت اصلی SSH، ایجاد اتصال بین دو کامپیوتر است. مثلاً کامپیوتر خانگی به سرور هاست سایت‌تان یا اتصال دو کامپیوتر در یک شرکت!

مطمئناً می‌دانید که قبلاً هم پروتکل‌های مانند Telnet وجود داشتند که اینکار را انجام می‌دادند؛ اما همان‌طور که بارها گفتیم، مزیت SSH نسبت به پروتکل‌های دیگر، ایمن بودن آن است؛ در این پروتکل، یوزرنیم و پسورد کاربر رمزنگاری می‌شود. به همین خاطر هکرها نمی‌توانند به آن‌ها دسترسی پیدا کنند.

۲) انتقال فایل

انتقال فایلفرض کنید دو اکانت جداگانه روی دو کامپیوتر جداگانه دارید و می‌خواهید فایلی را از اکانت اول، به اکانت دوم بفرستید. پروتکل‌های قدیمی انتقال فایل مثل FTP، این کار را بدون تامین امنیت انجام می‌دادند؛ اگرچه امکان رمزنگاری پیش از ارسال فایل وجود دارد، اما به‌خاطر دردسرهای این کار، شاید تامین امنیت به این شکل خیلی منطقی نباشد.

راه ساده‌تر، استفاده از پروتکل SSH است.  می‌توانید با اجرای دستور کپی، خیلی راحت فایل مدنظرتان را از مبداء به مقصد بفرستید. بدون اینکه نگران دسترسی پیدا کردن افراد پلید (بخوانید هکرها) به محتویات آن باشید. 

۳) اجرای دستورات از راه دور

امکان اجرای دستور از راه دور در SSHاگر ادمین شبکه‌ای بخواهد دستوری را روی چندین دستگاه اجرا کند، چه باید بکند؟ پاسخ کوتاه است و ساده: استفاده از پروتکل SSH.

یکی از مهم‌ترین قابلیت‌های این پروتکل، امکان اجرای دستورات از راه دور روی سیستم‌های مختلف است.

۴) Keys And Agents

پسورددروغ چرا؟ برای این قابلیت ترجمه مناسبی که بتواند مفهوم را به‌خوبی برساند پیدا نکردیم؛ اما سعی کردیم با توضیحات کامل، مفهوم آن را دقیق منتقل کنیم.

فرض کنید روی چند کامپیوتر مختلف در یک شبکه، اکانت‌های مختلفی دارید؛ هرکدام از اکانت‌ها بنا به دلایل امنیتی، پسوردی متفاوت دارند. احتمال فراموش کردن تعداد زیادی پسورد بسیار بالا است. اوضاع زمانی نابه‌سامان می‌شود که به اشتباه پسورد را جای یوزرنیم وارد کنید! یعنی حتی ممکن است پسوردتان هم لو برود.

 این قابلیت، سازوکاری را فراهم می‌کند که شبکه فقط یکبار، هویت شما به‌عنوان کاربر صاحب چندین اکانت را تائید می‌کند. پس از آن دیگر نیازی نیست برای هر اتصال، مجدداً پسوردتان را وارد کنید. 

نمی‌خواهیم با ریز شدن در جزئیات این سازوکار، بی‌جهت مقاله را پیچیده کنیم. فقط در این حد بدانید که این کار با استفاده از کلید‌ها – که بالاتر راجع به آن‌ها صحبت کردیم و گفتیم جزوی از فرایند احراز هویت هستند – و برنامه‌ای که Authentication Agent نام دارد انجام می‌شود.

۵) کنترل دسترسی‌ها

کنترل دسترسیبا استفاده از SSH می‌توانید به دیگران، اجازه دسترسی به اکانت‌تان را بدهید. بدون اینکه نیاز باشد یوزرنیم و پسوردتان را در اختیار آن‌ها بگذارید! حتی می‌توانید سطح دسترسی را هم مشخص کنید.

حتما بخوانید:  آزاد کردن RAM (رم) در لینوکس

۶) Tunneling یا Port Forwarding

Port ForwardingSSH حتی می‌تواند امنیت پروتکل‌های دیگر مثل Telnet و FTP را هم تامین کند! اینکار با استفاده از تکنیکی با نام Port Forwarding یا Tunneling انجام می‌شود. طرز کار به این صورت است که اتصال‌هایی که با استفاده از پروتکل‌های دیگر برقرارشده‌اند، به سمت یک اتصال SSH، هدایت می‌شوند. به این ترتیب، اتصال برقرار شده در هر دو طرف، رمزنگاری می‌شود.

۷) مدیریت شبکه

مدیریت شبکهیکی دیگر از قابلیت‌های محبوب این پروتکل، امکان مدیریت شبکه‌ و دیگر اجزای حیاتی سیستم‌ها است.

از همه این‌ها که بگذریم، احتمالاً سوال دیگری در ذهن دارید. اینکه این پروتکل چگونه کار می‌کند؟

SSH چگونه کار می‌کند؟

طرز کار پروتکل SSH، بر اساس مدل Client-Server است. این مدل که به آن ساختار Client-Server هم می‌گویند، یعنی تقسیم منابع و وظایف بین سرور به‌عنوان تامین‌کننده سرویس و کابر به‌عنوان درخواست‌کننده سرویس. احتمالاً این توضیحات خیلی قابل درک نیستند؛ پس بیایید کمی ساده‌سازی کنیم.

در پروتکل SSH که با این ساختار کار می‌کند، کاربر اتصال را بین دستگاه خود و سرور برقرار می‌کند. او تنظیمات لازم برای اتصال را انجام می‌دهد و با استفاده از کلید عمومی، درستی هویت سرور را تائید می‌کند.

بعد از انجام تنظیمات، پروتکل با رمزنگاری متقارن و هشینگ (بالاتر در مورد هر دو اصطلاح صحبت کردیم)، مطمئن می‌شود که داده‌ها در اتصال ایجاد شده، به‌صورت امن و البته یکپارچه منتقل شوند؛ یعنی سلامت اطلاعات و داده‌ها تضمین می‌شود.

تصویر زیر که متعلق به سایت SSH است، چگونگی انجام این فرایند را به‌خوبی نشان می‌دهد:

طرز کار SSH

خب این همه راجع به SSH حرف زدیم، اما چگونه باید از آن استفاده کنیم؟

چطور می‌توان از SSH استفاده کرد؟

اول از همه اینکه برای استفاده از این پروتکل، هم Local Machine یا دستگاه کاربر و هم سرور باید نرم‌افزار آن را نصب داشته باشند؛ اما نکته مهم اینکه: سیستم‌عامل‌های مک و لینوکس که بر پایه یونیکس طراحی شده‌اند، به‌صورت پیش‌فرض کار نصب را انجام داده‌اند.

به همین خاطر، می‌توانید از طریق Terminal این سیستم‌های عامل، دستورات مدنظرتان را روی سیستم‌هایی که می‌خواهید اجرا کنید. احتمالاً تا به اینجا فهمیده‌اید که  ذات این پروتکل، بر اساس کد است؛ گرچه حالا رابط‌های گرافیکی هم برای آن طراحی شده‌اند، اما متخصصین این حوزه معتقدند استفاده از کد در ترمینال، کار را بسیار راحت‌تر و سریع‌تر می‌کند. 

بر خلاف لینوکس و مک، ویندوز به‌صورت پیشفرض با SSH سازگار نیست. به همین خاطر باید روی کامپیوترهایی که سیستم‌عامل‌شان ویندوز است، نرم‌افزار SSH Client نصب کرد. این نرم‌افزار، رابط‌ گرافیکی‌ای محسوب می‌شود که از طریق آن‌ هم می‌توان دستورات SSH را اجرا کرد و فقط مختص ویندوز هم نیستند.

انواع مختلفی از این نرم‌افزار وجود دارد.

نرم‌افزارهای SSH Client

نرم‌افزارهای گوناگونی برای استفاده از پروتکل SSH ارائه شده‌اند. آن‌ها باعث شده‌اند تا افرادی که با دنیای کدها آشنایی ندارند هم بتوانند از SSH و قابلیت‌هایش برخوردار شوند.

در ادامه با چهار SSH Client، بیشتر آشنا خواهید شد.

نرم‌افزار Putty

Putty معروف‌ترین SSH Client دنیای اینترنت است. Putty از پروتکل‌های مختلفی مثل Telnet، SSH، SCP و rlogin پشتیبانی می‌کند. در ضمن یکی از بهترین SSH Clientهایی است که برقراری ارتباط SSH برای ویندوز را فراهم می‌کند.

برای استفاده از Putty، ابتدا باید این نرم‌افزار را دانلود کنید. می‌توانید برای اینکار از لینک زیر کمک بگیرید:

دانلود نرم‌افزار Putty

پس از دانلود، فایل را باز کنید و سپس در پنجره تنظیمات، در قسمت Host Name (Or IP Address)، اطلاعات لازم را درج کنید. همان نام هاست یا آیپی آن!

در فیلد مقابل این قسمت، باید شماره پورت را وارد کنید. ۲۲، عددی است که باید در این فیلد نوشته شود.

نرم افزار Putty

همان‌طور که در تصویر بالا می‌بینید، زیر این دو فیلد، Connection Type وجود دارد. از بین پنج گزینه موجود، SSH را انتخاب کنید و روی Open کلیک کنید.

در نهایت هم پنجره‌ای باز می‌شود که باید در آن نام کاربری و رمز عبورتان را وارد کنید.

نرم‌افزار MobaxTerm

MobaXterm نرم‌افزاری کاربردی و قدرتمند است. این نرم‌افزار، امکان مدیریت و همچنین نظارت بر سیستم‌هایی که به شبکه متصل هستند را در اختیار کاربر قرار می‌دهد.

از این SSH Client، می‌توان برای کپی و جابه‌جایی فایل‌ها، اجرای اسکریپت‌ها و … از راه دور استفاده کرد.

برای نصب این نرم‌افزار، می‌توانید آن را از لینک زیر دانلود کنید:

دانلود نرم‌افزار MobaXterm

‌پس از دانلود و نصب نرم‌افزار، پنجره‌ای مشابه تصویر زیر باز می‌شود. از بین بخش‌های موجود در سمت چپ این پنجره، روی Sessions کلیک کنید. سپس روی Saved Sessions کلیک راست کرده و گزینه اول یعنی New Session را انتخاب کنید.

نرم افزار MobaXtrem

صفحه‌ای جدید باز می‌شود که باید در بخش بالایی آن، باید SSH را از میان پروتکل‌های دیگر انتخاب کنید. لطفاً به تصویر زیر توجه کنید:

نرم افزار MobaXtrem 2

در فیلد Remote Host، آدرس IP سروری که می‌خواهید به آن متصل شوید را وارد کنید.

تیک مربوط به Specify Username را بزنید و اگر نام کاربری، چیزی غیر از Root است، آن را در این بخش بنویسید.

در فیلد Port هم که باید عدد ۲۲ را وارد کنید. مرحله آخر کلیک کردن روی OK است! اتصال برقرار شد.

نکته: انجام این تنظیمات فقط یکبار انجام می‌شود. در دفعات بعدی می‌توانید از بخش Saved Sessions، کانکشنی که تعریف کرده‌اید را پیدا کنید و تنها با یک کلیک، مجدداً متصل شوید.

نرم‌افزار ZOC

ZOC در اصل یک شبیه‌ساز ترمینال است! این نرم‌افزار که برای سیستم‌عامل مک نوشته شده‌، اتصال به سرورهای لینوکس و یونیکس را از راه دور ممکن می‌کند.

حتما بخوانید:  آسیب پذیری امنیتی OpenVZ‎ و راه مقابله با آن

برای دانلود این نرم‌افزار، می‌توانید از لینک زیر استفاده کنید:

دانلود نرم‌افزار ZOC

پس از اجرای فایل دانلود شده، گزینه Quick Connection را انتخاب کنید. سپس با پنجره‌ای مشابه تصویر زیر مواجه خواهید شد.

نرم افزار ZOC

در بالای این پنجره، دو فیلد با عنوان Connect To و Port وجود دارند. این دو فیلد را باید به‌‌ترتیب با آدرس IP سرور مدنظر و عدد ۲۲ پر کنید.

پایین‌تر از این دو فیلد، قسمتی وجود دارد با نام Connection Type. در این قسمت از بین گزینه‌های موجود باید Secure Shell را انتخاب کنید.

دو فیلد دیگر هم وجود دارند که مختص به Username و Password هستند. پس از پر کردن این دو فیلد با اطلاعات موردنیاز، روی Connect کلیک کنید تا اتصال برقرار شود.

نرم‌افزار Terminus

‌اگر می‌خواهید با گوشی موبایل‌تان از پروتکل SSH استفاده کنید،  Terminus همان چیزی است که به آن نیاز دارید.

نرم افزار Termius

جهت دانلود این نرم‌افزار برای سیستم‌های عامل IOS و Android، می‌توانید از لینک‌های زیر استفاده کنید:

دانلود نرم‌افزار Terminus برای IOS

دانلود نرم‌افزار Terminus برای اندروید

البته باید بگوییم، نرم‌افزارهای موبایلی دیگری هم برای استفاده از SSH وجود دارند. مانند: MobileSSh و JuiceSSH.

همان‌طور که گفتیم، همه این نرم‌افزارها، نوعی رابط کاربری گرافیکی هستند که استفاده از SSH را برای افراد مبتدی‌تر ساده می‌کنند؛ اما همان‌طور که بالاتر هم گفتیم، ذات این پروتکل، از کدها تشکیل شده است. دستورات گوناگونی که کارهای گوناگونی انجام می‌دهند.

دستورات رایج و پراستفاده در پروتکل SSH

در این بخش، ۱۷ دستور اصلی پروتکل SSH را با هم بررسی خواهیم کرد. در لینوکس و مک، دستورات در Terminal نوشته می‌شوند. در ویندوز هم باید آن‌ها را در Command Prmpt وارد کنید؛ ویندوز ۱۰ از سال ۲۰۱۸ قابلیت پشتیبانی از SSH را دارد.

این نکته را هم بگوییم که ما فقط خود دستور و کاری که انجام می‌دهد را می‌گوییم.

مثلاً دستور mkdir، برای ساخت یک فولدر جدید استفاده می‌شود. برای انجام این کار، باید بعد از عبارت mkdir، نام فولدری که می‌خواهید ایجاد کنید را بیاورید. برای مثال اگر بخواهید فولدری با نام MyFolder ایجاد کنید، باید دستور زیر را در خط فرمان سیستم‌عامل‌تان وارد کنید.

از آنجایی که پرداختن به دستورات همراه با ریز جزئیات ممکن است کمی حوصله‌سربر و گیج‌کننده باشد، تصمیم گرفتیم فقط قسمت اول هر دستور را معرفی کنیم.

  1. ls: نمایش فهرست (دایرکتوری) محتواها (لیست نام فولدرهای موجود).
  2. cd: تغییر دایرکتوری.
  3. mkdir: ساخت یک فولدر (دایرکتوری) جدید.
  4. touch: ساخت فایل جدید.
  5. rm: پاک کردن یک فایل.
  6. cat: نمایش محتویات یک فایل.
  7. pwd: نمایش دایرکتوری کنونی (آدرس دقیق جایی که هم‌اکنون در آن هستید).
  8. cp: کپی کردن یک فایل یا یک فولدر.
  9. mv: جابه‌جا کردن یک فایل یا فولدر.
  10. grep: جست‌و‌جوی قسمتی مشخص در یک فایل یا میان خط‌های موجود.
  11. find: جست‌وجوی فایل‌ها و دایرکتوری‌ها.
  12. vi/nano: ویرایش Text.
  13. history: نمایش ۵۰ دستور اخیری که مورد استفاده قرار گرفته‌اند.
  14. clear: پاک کردن صفحه Terminal از همه‌چیز!
  15. tar: ساخت و باز کردن فایل‌های فشرده.
  16. wget: دانلود فایل از اینترنت.
  17. du: دریافت سایز فایل.

البته که دستورات بیشتری در این پروتکل قابل اجرا هستند، اما همان‌طور که گفتیم، این ۱۷ دستور، اصلی‌ترین و مهم‌ترین آن‌ها هستند.

تمام مسائلی که در مورد SSH گفتیم، گویای صفات مثبت و خوب بودند؛ اما خب ایراداتی هم وجود دارند، گرچه بسیار کم!

SSH چه ایراداتی دارد؟

مهم‌ترین نکته‌ای که باید برای حفظ امنیت بیشتر، در SSH رعایت شود، مسئله مدیریت کلید‌های عمومی هاست‌ها است که روی سیستم کاربران مختلف ذخیره می‌شوند!

 هر بار که اتصال جدیدی از طریق این پروتکل ایجاد می‌شود، کلید جدیدی هم در Local Host یا دستگاه کاربر ساخته می‌شود. این کلیدها در فولدری با نام known-hosts نگه‌داری می‌شوند. پس از گذشت مدت زمانی، تعداد این کلیدها بسیار زیاد می‌شود و همین موضوع می‌تواند به‌عنوان یک رخنه امنیتی برای ورود به سیستم شناخته شود. 

حتی اگر سیستم به‌طور کامل از چرخه خارج شود، از آنجایی که ممکن است این داده‌های حیاتی، در قالب Plain Text داخل هارد دستگاه باقی مانده باشند، می‌توانند خطرساز شوند.

به همین خاطر است که ارگان‌ها باید برنامه‌ای برای مدیریت این کلیدها داشته باشند. در غیر این‌صورت، نمی‌توانند بفهمند چه کسانی و در چه زمانی به منابع دسترسی داشتند!

دیدید که این ایراد هم بیشتر از جانب استفاده‌کنندگان است و نه خود پروتکل، رفع آن هم نیازمند دقت و برنامه‌ریزی آن‌ها است.

در کل تا‌به‌حال، رخنه بزرگ و خبرسازی در این پروتکل گزارش نشده است؛ اما در سال ۲۰۱۳، شایعاتی وجود داشتند که می‌گفتند، سازمان امنیت ملی آمریکا (NSA)، می‌تواند برخی از اطلاعات ردوبدل شده را رمزگشایی کند.

حرف آخر

حالا کاملاً می‌دانید منظور از پروتکل SSH چیست!  یک پروتکل اینترنتی که به خاطر امنیت بالا، جایگزین پروتکل‌های قدیمی‌تر مثل Telnet، FTP و … شده است و کاربردهای بسیاری دارد. 

SSH کارهایی مانند اتصال دو کامپیوتر به هم، انتقال فایل، مدیریت شبکه و … را در فضایی ایمن و دور از دسترس هکرها انجام می‌دهد. این امنیت با رمزنگاری و احراز هویت به‌گونه‌های مختلف تامین می‌شود.

منابعی که برای نوشتن این مقاله از آن‌ها استفاده کردیم، سایت‌های TechTarget، SSH و Hostinger بوده‌اند.

لطفاً هر سوال یا نظری که در رابطه با SSH دارید، در قسمت کامنت‌ها با ما و دیگر خوانندگان به اشتراک بگذارید.

سپاس که تا انتهای مقاله همراه ما بودید.

مایلید هر دو هفته یک ایمیل مفید دریافت کنید؟

ما را در شبکه‌های اجتماعی دنبال کنید

همچنین شاید دوست داشته باشید!

SNI چیست؟ و چه فوایدی دارد؟

SNI چیست و چه وظیفه‌ای دارد؟

۰
افزایش امنیت اینترنت! یکی از دغدغه‌های بشر از سال‌ها پیش تا به‌امروز همین بوده است. در این راستا اقدامات زیادی انجام شده و در این…

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

فهرست