پروتکل ssh چیست و چه کاربردی دارد؟
کنترل از راه دور رایانه و ارتباط با سرور از مدتها قبل مورد توجه و دغدغۀ کاربران بوده است. پروتکل Talent بستری برای ارتباط کاربران با سرور بود، اما کاملاً ناامن بود. همانطور که همه میدانیم، امنیت از مهمترین عوامل فعالیت در هر زمنیهای است؛ از امنیت در محیط واقعی گرفته (مثلاً مرزهای یک کشور) تا امنیت در محیط مجازی (مثل بستر وب).
پس پروتکل جدید به نام SSH که مخفف Secure Shell است معرفی شد. پروتکل SSH بسیار پرکابرد و امن است. هم امکان ارتباط با سرور از راه دور را فراهم میکند و همچنین مدیریت آن بهصورت رمزنگاریشده انجام میشود؛ در نتیجه شرایط امنی را بهوجود میآورد.
همانطور که در بالا گفتیم، SSH مخفف Secure Shell است که بعضی اوقات به آن Secure Source Shell هم میگویند.
این پروتکل نخستین بار در سال 1995 توسط تاتو یلونن (Tatu Tlonen) فنلاندی به دنیا معرفی شد. او قصد داشت تا با این پروتکل، بستر امنی را برای ارتباط برقرار کند و جایگزینی مناسب برای سایر پروتکلهای ناامن باشد که موفق هم بود. این پروتکل اینترنتی کمک میکند تا دو رایانه بتوانند روی یک شبکۀ ناامن بهصورت کاملاً امن به هم متصل شوند.
تا قبل از اینکه این پروتکل امن یعنی پروتکل SSH معرفی شود، دو پروتکل FTP و Talent بودند که بزرگترین مشکل آنها، ناامنبودنشان بود؛ بهطوری که فایلها توسط هکرها بهراحتی قابل سرقت بود.
حالا و با آمدن پروتکل SSH، این امکان فراهم شده تا به یک رایانه یا سرور، بهطور ایمن از راه دور متصل شوید.
با برقرارشدن اتصال SSH، شما میتوانید کارهایی مانند تایپ دستوری سرور خودتان را مدیریت کنید، یا انتقال فایل را انجام دهید. معمولاً مدیران سیستم و شبکه و هر کسی که به یک بستر امن برای ارتباط با سرور نیاز داشته باشد، از این پروتکل استفاده میکند.
نکتۀ قابل توجه در این زمینه این است که هرگاه SSH (با حروف بزرگ) نوشته شد، بهمعنیِ پروتکل است. اگر از حروف کوچک یعنی ssh استفاده شد، بهمعنایِ سرویسها و نرمافزارهای مربوط به این پروتکل است.
بهصورت کلی، پروتکل SSH بهدلیل استفاده از دو خصوصیت رمزنگاری (Cryptography) و احراز هویت (Authentication)، یک پروتکل بسیار ایمن محسوب میشود.
منظور از احراز هویت، همان تأیید هویت کسی است که میخواهد وارد یک سیستم شود. به این شکل که پروتکل SSH، هم دستگاه کاربری که قصد اتصال به سرور را داشته باشد و هم سرور مورد نظر را، احراز هویت میکند. به این صورت که در هر ارتباطی ابتدا هویت کاربری که درخواست اتصال به سرور را دارد بررسی میشود، سپس کاربر به سروری که آن هم مورد بررسی قرار میگیرد، متصل میشود.
اما اصلیترین دلیل ایمنبودن پروتکل SSH، رمزنگاریشدن تمام دادههاست. هرگونه پیامی که از سمت کاربر (کلاینت) به سمت سرور میرود، کاملاً رمزنگاریشده است؛ به همین علت است که هکرها و افراد سودجو قابلیت دسترسی به این اطلاعات را ندارند. پروتکل SSH از سه تکنولوژی در زمینۀ رمزنگاری استفاده میکند.
این تکنولوژیها عبارتاند از رمزنگاری متقارن (Symmetrical Encryption)، رمزنگاری نامتقارن (Asymmetrical Encryption) و هشینگ (Hashing).
پروتکل SSH از مدل کلاینت-سرور پیروی میکند. بهصورت ساده نحوۀ کارکرد این مدل را بیان میکنیم. ابتدا کاربر ارتباط سیستم خود با سرور را برقرار میکند. بعد از اینکه تنظیمات مورد نظر را انجام داد، از کلید عمومی برای دسترسی هویت سرور استفاده میکند. حالا کاربر باید مطمئن شود که این ارتباط امن و یکپارچه است. برای این کار، پروتکل با رمزنگاری متقارن و هشینگ اعتبارسنجی میشود.
در طول مقاله، از امنیت بالای پروتکل SSH صحبت کردیم، اما قابلیتهای پروتکل SSH تنها به امنیت آن محدود نمیشود و در ادامه، سایر قابلیتهای آن را بیان میکنیم:
روشهای مختلفی برای استفاده از پروتکل SSH وجود دارد که در ادامه چند نمونه از آنها را آوردهایم:
پروتکل SSH نسخههای مختلفی دارد، که در ادامه آنها را معرفی میکنیم:
این اولین نسخه از این پروتکل بود که در سال 1995 ارائه شد. همانطور که قبلاً هم گفتیم، این پروتکل جایگزین بسیار خوبی برای پروتکلهای FTP و Talent بود که مشکل ناامنبودن آنها را تا حدود زیادی برطرف کرد، اما با گذشت زمان، اشکالات آن پیدا شد.
با توجه به مشکلات نسخه اول پروتکل SSH یعنی SSH-1، در سال 2006 کارگروه مهندسی ویژه اینترنت (IETF)، ارائۀ نسخه SSH-2 را به تصویب رساند. نسخه فعلی، پروتکل SSH-2 است که قابلیتها و امنیت بالاتری نسبت به نسخه قبلی دارد.
پروتکل SSH در ابتدای عرضه بهصورت رایگان بود. بعد از اینکه این پروتکل به موفقیتهای زیادی دست پیدا کرد، عرضۀ آن بهصورت انحصاری بود. به این دلیل بود که توسعهدهندگان از نسخه منبعباز آن استفاده و نسخه OpenSSH را منتشر کردند. این نسخه، از سال 2005 در برخی از سیستمعاملها عرضه شد.
نحوه اتصال به پروتکل SSH در سیستمعامل ویندوز، لینوکس و مک متفاوت است. در ادامه به توضیح هر یک از آنها میپردازیم:
در ویندوز امکان اتصال بهصورت مستقیم وجود ندارد. برای این کار باید از برنامۀ putty که منبعباز است استفاده کنید. این برنامه (که رایگان است) را دانلود و نصب کنید. آدرس IP و پورت SSH (که به صورت پیشفرض 22 است) را وارد کنید. به این ترییب در ویندوز میتوانید به پروتکل SSH در سرور متصل شوید.
برخلاف ویندوز، در لینوکس و مک شما میتوانید با نوشتن کد در ترمینال به پروتکل SSH در سرور متصل شوید:
Ssh your_username@serverip -p port
که بهجای your_username، از نام کاربری خودتان که در سرو گذاشتید، بهجای serverip، آدرس سرور، و بهجای port، شمارۀ پورت SSH را وارد کنید.
اتصال به سرور از طریق اندروید هم امکانپذیر است که برای این کار، از برنامۀ ConnectBot میتوانید استفاده کنید.
سخن پایانی
حال بهتر می دانیم که پروتکل SSH چیست :
پرکاربردترین و امنترین پروتکل است که در دنیای فناوری از آن استفاده میشود. به همین علت در این مقاله سعی کردیم تمامی جوانب پروتکل SSH، از علت ارائۀ این پروتکل تا نحوه کارکردن با آن را به صورت جامع و در عین حال ساده، بیان کنیم.