اگر خیلی اهل مباحث فن آوری اطلاعات هم نباشید، تنها به موجب داشتن سرورهای مجازی، خصوصاً سرور های لینوکسی ممکن است سر و کارتان با SSH افتاده باشد. تعاریف دست و پا شکسته در پاسخ این سوال که SSH چیست و گاه حتی نسبت دادن تعاریف نادرست ما را بر آن داشت تا مطلبی را به این موضوع که اساساً SSH چیست اختصاص دهیم.
درمقالات گذشته در خصوص چندی از پروتکل های مورد استفاده در دنیای فناوری و اینترنت از جمله FTP، HTTPS، TLS و… با شما سخن گفتیم. SSH نیز مانند این پروتکل ها، یک پروتکل از نوع امن می باشد.
در سال ۱۹۹۵ یک دانشجوی دانشگاه هلسینکی به نام Tatu Ylonen پس از اینکه اطلاعات مهمی مثل رمز و نام های کاربری در شبکه دانشگاه مورد شنود قرار گرفت به فکر ایجاد یک شبکه امن افتاد و این فکر در نهایت منجر به ایجاد یک Shell امن شد که جایگزینی برای rsh، rlogin، rcp، Telnet، FTP شد.
SSH (اس اس اچ) مخفف عبارت «Secure Shell» (پوسته امن) می باشد. SSH یک راهکار و بهتر است گفت پروتکل طراحی شده برای برقراری اتصال امن میان کاربر (Client) و سرور (Server) می باشد. با کمک پروتکل های مختلفی که تعدادی از آنها را در بالا ذکر نمودیم، می توان از طرف کلاینت به سمت سرور اطلاعات را ارسال نمود. اما این میان تفاوت SSH چیست؟ ما در اتصال با پروتکل SSH قبل از ارسال هر اطلاعات آنها را رمزنگاری نموده و در سمت مقابل رمز گشایی می نماییم. البته این کار توسط خود سیستم و بدون دخالت کاربر انجام می پذیرد.
پروتکل SSH را می توان به نوعی نسخه امن اتصال Telnet (تل نت) نیز نامید. بد نیست حالا که مفصل به بررسی این مسئله می پردازیم که SSH چیست، اشاره ای هم بکنیم که SSH تحت استاندارد پروتکل IEFT می باشد. استاندارد IEFT که برگرفته از عبارت «Internet Engineering Task Force» می باشد از سال ۱۹۸۶ بسیاری از پروتکل های اینترنت را تحت پوشش خود قرار داده است.
در حال حاضر پروتکل SSH در ۲ نسخه SSH-1 و SSH-2 در اکثر سیستم عامل ها در دسترس می باشد. به طور پیش فرض امکان اتصال از طریق هر دو نسخه وجود دارد مگر در سمت سرور و در فایل کانفیگ SSH تنظیم شده باشد که تنها از نسخه ۱ یا مثلا ۲ پشتیبانی نماید. جهت آگاهی از نسخه SSH پس از اتصال می توانید فرمان زیر را اجرا نمایید:
# ssh -v
شاید برای شما این سؤال پیش بیاید که تفاوت بین نسخه های مختلف SSH چیست، در حقیقت این دو نسخه بیشتر در حوزه تائید کاربر (User Authentication) هست که با هم متفاوت هستند. SSH-1 گستره وسیع تری از متدهای تائید کاربر را پوشش می دهد، اما از اتصال همزمان در اکثر اونها پشتیبانی نمی کند. هر چند در SSH-2 شاهد متدهای RhostsRSA ، Kerberos و TIS نیستیم، اما در مقابل با بهره گیری از متد قدرتمند PublicKey و توسعه اون (DSA, RSA*, OpenPGP) توانسته است کاملا نیاز کاربران را رفع نماید. ضمن این که از اتصال همزمان نیز کاملاً پشتیبانی می کند. تفاوت مهم دیگر SSH-1 در قیاس با SSH-2 بحث امنیت است که در برخی اتصال ها فرصت حملات ورودی (Insertion Attack) را ایجاد می نماید.
مانند اف تی پی، برای اتصال به SSH هم روش های مختلفی وجود دارد. اما اگر از سیستم عامل ویندوز برای اتصال به سرور لینوکسی خود استفاده می کنید، نرم افزار PuTTY این کار را برای شما آسان کرده است. وقتی که PuTTY را اجرا کنید، صفحه ی پیکربندی نمایان می شود. ابتدا باید نام میزبان (آدرس آی پی) و سرویس دهنده SSH که میخواهید به آن متصل شوید (مثلا example.com) را وارد کنید. اگر فقط آدرس IP را میدانید،میتوانید فقط از آدرس IP استفاده کنید. اگر متناوباً از این تنظیمات استفاده مینمایید، میتوانید یک پروفایل PuTTY ایجاد کرده و این تنظیمات را در آن ذخیره نمایید.