Secure Shell (SSH) یک پروتکل شبکه پرکاربرد است که راهی امن برای دسترسی به سرورها و رایانه های راه دور فراهم می کند.

در لینوکس، SSH یک ابزار ضروری برای مدیریت از راه دور و انتقال فایل است. در این مقاله به معنای SSH در لینوکس، تاریخچه، ویژگی ها، پیکربندی و موارد استفاده آن خواهیم پرداخت.

SSH چیست؟

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

SSH مکانیزم های رمزگذاری و احراز هویت را برای محافظت از محرمانه بودن و یکپارچگی ارتباطات شبکه فراهم می کند.

تاریخچه مختصر SSH

اولین نسخه SSH، SSH-1، توسط Tatu Ylönen در سال 1995 به عنوان پاسخی به ناامنی Telnet و FTP توسعه یافت.

در سال 1996، SSH Communications Security نسخه تجاری SSH-1 را منتشر کرد که به طور گسترده در صنعت مورد استفاده قرار گرفت.

اما SSH-1 دارای برخی آسیب‌پذیری‌های امنیتی بود و در سال 1998، Ylönen SSH-2 را توسعه داد که به این مشکلات پرداخت و به پرکاربردترین نسخه SSH تبدیل شد.

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

SSH از معماری سرویس گیرنده-سرور استفاده می کند، جایی که مشتری اتصال به سرور را آغاز می کند و یک کانال ارتباطی امن را درخواست می کند. سرور با تولید یک جفت کلید رمزنگاری، یکی عمومی و دیگری خصوصی پاسخ می دهد.

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

ویژگی های SSH

  • رمزگذاری: SSH از الگوریتم های رمزگذاری قوی مانند AES برای محافظت از محرمانه بودن و یکپارچگی داده های ارسال شده از طریق شبکه استفاده می کند.
  • انتقال امن فایل: قابلیت های انتقال امن فایل (SFTP) را فراهم می کند که به کاربران امکان می دهد فایل ها را بین سرورهای راه دور به صورت امن منتقل کنند.
  • ورود از راه دور: SSH یک راه امن برای ورود به سرورها و رایانه های راه دور، بدون افشای اعتبار ورود به سیستم در اختیار مهاجمان است.
  • پورت حمل و نقل: قابلیت‌های ارسال پورت را فراهم می‌کند که به کاربران اجازه می‌دهد از طریق یک کانال ارتباطی امن به خدمات محدود شده در سرورهای راه دور دسترسی داشته باشند.
  • X11 فوروارد: SSH قابلیت‌های ارسال X11 را فراهم می‌کند که به کاربران اجازه می‌دهد برنامه‌های گرافیکی را از راه دور بدون نیاز به نصب محلی اجرا کنند.
  • حمل و نقل نماینده: همچنین قابلیت‌های ارسال عامل را فراهم می‌کند که به کاربران اجازه می‌دهد از کلیدهای SSH برای احراز هویت در سرورهای راه دور استفاده کنند، بدون اینکه هر بار رمز عبور خود را وارد کنند.
پیشنهاد می‌کنیم بخوانید:  روش اضافه کردن نام مستعار به دستورات ترمینال در لینوکس و مک

پیکربندی SSH

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

  • تولید کلیدهای SSH: قبل از استفاده از SSH، کاربران باید یک جفت کلید رمزنگاری، یکی عمومی و دیگری خصوصی تولید کنند. کلید عمومی با سرور به اشتراک گذاشته می شود، در حالی که کلید خصوصی به طور ایمن در رایانه کاربر نگهداری می شود.
  • ویرایش فایل های پیکربندی: کاربران می توانند فایل های پیکربندی SSH را ایجاد و ویرایش کنند تا تنظیمات SSH خود را سفارشی کنند، مانند تعیین الگوریتم رمزگذاری ترجیحی یا تنظیم ارسال پورت. فایل های پیکربندی SSH معمولا در /etc/ssh/ فهرست راهنما.
  • روش های احراز هویت: SSH از روش های مختلف احراز هویت مانند احراز هویت رمز عبور، احراز هویت کلید عمومی و احراز هویت چند مرحله ای پشتیبانی می کند. کاربران می توانند بر اساس نیازهای امنیتی خود مناسب ترین روش احراز هویت را انتخاب کنند.
  • پیکربندی امن SSH: برای اطمینان از حداکثر امنیت، کاربران باید بهترین شیوه ها را برای پیکربندی ایمن SSH دنبال کنند، مانند غیرفعال کردن ورود به سیستم ریشه، اعمال رمزهای عبور قوی، و محدود کردن تعداد تلاش های ناموفق برای ورود. کاربران همچنین می توانند از ابزارهایی مانند Fail2Ban برای جلوگیری از حملات brute-force به SSH استفاده کنند.
  • فعال کردن X11 Forwarding: SSH قابلیت‌های ارسال X11 را فراهم می‌کند که به کاربران اجازه می‌دهد برنامه‌های گرافیکی را از راه دور بدون نیاز به نصب محلی اجرا کنند. برای فعال کردن ارسال X11، کاربران می توانند هنگام اتصال به سرور راه دور، پرچم -X یا -Y را اضافه کنند.
  • پورت حمل و نقل: SSH به کاربران اجازه می دهد تا انتقال پورت را تنظیم کنند، که می تواند برای دسترسی به خدمات محدود شده در سرورهای راه دور از طریق یک کانال ارتباطی امن مفید باشد. کاربران می توانند بسته به نیاز خود، حمل و نقل پورت محلی یا راه دور را تنظیم کنند.
  • فشرده سازی: SSH از فشرده سازی داده ها پشتیبانی می کند که می تواند عملکرد اتصال SSH را بهبود بخشد، به خصوص هنگام انتقال فایل های بزرگ یا اجرای برنامه های کاربردی با منابع فشرده. کاربران می توانند فشرده سازی را با اضافه کردن آن فعال کنند -C هنگام اتصال به سرور راه دور پرچم گذاری کنید.
پیشنهاد می‌کنیم بخوانید:  نحوه جستجوی موثر فایل ها در ترمینال لینوکس – راهنمای پیشرفته

مثال های SSH و موارد استفاده

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

نتیجه

برای پایان دادن به این مقاله، در اینجا خلاصه ای از آنچه را پوشش دادیم و آنچه باید در مورد SSH بدانید آورده شده است:

  • SSH یک پروتکل امن برای ارتباط از راه دور در لینوکس است.
  • SSH از رمزگذاری برای محافظت از داده ها و مکانیسم های احراز هویت برای تأیید کاربران استفاده می کند.
  • SSH یک روش مطمئن و کارآمد برای برقراری ارتباط ایمن از طریق اینترنت است و ابزاری حیاتی برای مدیریت و توسعه سیستم لینوکس است.
  • SSH امکان ورود از راه دور، انتقال امن فایل، ارسال پورت، ارسال X11 و قابلیت ارسال عامل را فراهم می کند.
  • برای استفاده از SSH، کاربران باید یک جفت کلید رمزنگاری، یکی عمومی و دیگری خصوصی تولید کنند.
  • فایل های پیکربندی SSH را می توان برای بهینه سازی اتصال SSH و بهبود امنیت سفارشی کرد.
  • SSH از روش های احراز هویت مختلف مانند احراز هویت رمز عبور، احراز هویت کلید عمومی و احراز هویت چند عاملی پشتیبانی می کند.
  • برای اطمینان از حداکثر امنیت، کاربران باید بهترین روش‌ها را برای پیکربندی امن SSH دنبال کنند، مانند غیرفعال کردن ورود به سیستم ریشه، اعمال رمزهای عبور قوی و محدود کردن تعداد تلاش‌های ناموفق برای ورود.
  • SSH را می توان برای مدیریت سرور از راه دور، انتقال امن فایل، اجرای برنامه های گرافیکی از راه دور، حمل و نقل پورت و تونل زدن برای ارتباط امن استفاده کرد.
  • SSH یک پروتکل به طور گسترده مورد استفاده و پشتیبانی است، با بسیاری از سرویس گیرندگان و سرورهای SSH برای پلتفرم های مختلف در دسترس است.

بیایید وصل شویم توییتر و در لینکدین همچنین می توانید در کانال یوتیوب من مشترک شوید.

کد نویسی مبارک!