نحوه وصل شدن به SSH و راهکارهای رفع مشکلات آن

نحوه وصل شدن به SSH  و راهکارهای رفع مشکلات آن

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

SSH امکان مدیریت سرورهای وب، پایگاه داده و سرویس‌ها را فراهم می‌کند و اغلب روی پورت ۲۲ اجرا می‌شود، اما این پورت قابل تغییر است. همچنین با SSH می‌توانید از پروتکل‌های امن برای انتقال فایل‌ها مانند SFTP و SCP استفاده کنید و اطلاعات حساس را بدون نگرانی از شنود محافظت نمایید.

پروتکل SSH چیست و چه کاربردی دارد؟

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

  • مدیریت سرور از راه دور: امکان اجرای دستورات سیستم بدون نیاز به دسترسی فیزیکی به سرور
  • انتقال فایل امن: استفاده از SFTP یا SCP برای انتقال فایل‌ها با رمزنگاری کامل
  • راه‌اندازی و مدیریت پروژه‌ها: نصب، اجرا و بروزرسانی برنامه‌ها از راه دور
  • مدیریت پایگاه داده و سرویس‌ها: کنترل سرویس‌ها، پایگاه داده و تنظیمات شبکه به صورت مستقیم

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

«با وصل شدن به SSH می‌توان بدون نگرانی از امنیت، فایل‌ها را مدیریت و دستورات سیستم را از راه دور اجرا کرد همچنین امکان انتقال فایل با استفاده از پروتکل‌های SFTP و SCP وجود دارد.»

پروتکل SSH چیست

وصل شدن به SSH در ویندوز با PuTTY

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

Wordpress Hosting

هاست اختصاصی وردپرس

شروع از ماهانه 80 هزار تومان

خرید هاست

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

  • نرم‌افزار PuTTY را از سایت رسمی دانلود و نصب کنید.
  • در بخش Host Name آدرس IP یا دامنه سرور را وارد کنید.
  • در بخش Port شماره پورت SSH سرور را وارد نمایید (معمولا ۲۲ است).
  • روی Open کلیک کنید. اگر برای اولین بار متصل می‌شوید، کلید میزبان تایید شود.
  • نام کاربری و رمز عبور خود را وارد کنید. هنگام وارد کردن رمز عبور، چیزی نمایش داده نمی‌شود اما تایپ رمز ضروری است.
  • پس از وارد کردن صحیح اطلاعات، به محیط ترمینال سرور متصل خواهید شد و می‌توانید دستورات مدیریتی خود را اجرا کنید.

نکته: برای Paste کردن دستورات در PuTTY، کافی است روی پنجره راست کلیک کنید.

وصل شدن به SSH در ویندوز با PuTTY

اتصال به SSH در لینوکس و مک

سیستم‌عامل‌های لینوکس و مک SSH را به صورت پیش‌فرض دارند، بنابراین نیازی به نصب نرم‌افزار اضافی نیست. برای وصل شدن به SSH کافی است ترمینال را باز و دستور زیر را وارد کنید:

ssh username@server_address

  • username نام کاربری سرور شماست.
  • server_address آدرس IP یا دامنه سرور است.

مثال:

ssh [email protected]

Cheap VPS

سرور مجازی ارزان

شروع از ماهانه 100 هزارتومان

خرید سرور

اگر سرور از پورت دیگری استفاده می‌کند، می‌توانید از گزینه -p برای مشخص کردن پورت استفاده کنید:

ssh -p 2222 [email protected]

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

اتصال به SSH در لینوکس و مک

اتصال با کلید عمومی و خصوصی (Key Pair)

استفاده از کلید عمومی و خصوصی به جای پسورد امنیت اتصال را افزایش می‌دهد و امکان ورود بدون رمز عبور را فراهم می‌کند. مراحل ایجاد Key Pair در ویندوز عبارتند از:

  1. دستور زیر را در Command Prompt اجرا کنید:

ssh-keygen

  1. مسیر ذخیره‌سازی کلید و رمز عبور برای کلید خصوصی را مشخص کنید.
  2. کلید عمومی (.pub) را در سرور اضافه کنید.
  3. برای اتصال با کلید خصوصی:

ssh -i C:\Users\User\.ssh\id_rsa [email protected]

Windows VPS

سرور مجازی ویندوز

Remote Access & Full Admin

خرید سرور مجازی

با این روش، امنیت وصل شدن به SSH افزایش یافته و مدیریت سرور بدون نیاز به وارد کردن پسورد روزانه امکان‌پذیر می‌شود.

مشکلات رایج هنگام وصل شدن به SSH و راه‌حل‌های کاربردی

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

1. خطای Connection refused

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

  • بررسی فعال بودن سرویس SSH با دستور زیر:

systemctl status ssh

این دستور وضعیت سرویس را نشان می‌دهد و در صورت غیرفعال بودن، می‌توان آن را با systemctl start ssh فعال کرد.

  • اطمینان از باز بودن پورت SSH (پیش‌فرض ۲۲) در فایروال سرور. این مورد در سرورهای لینوکس با ufw یا iptables قابل تنظیم است.
  • اگر از سرور مجازی استفاده می‌کنید، بررسی وضعیت روشن بودن سرور و اتصال شبکه ضروری است. گاهی Restart کردن سرویس یا سرور، مشکل را رفع می‌کند.

خطای Connection refused

2. خطای Connection timed out

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

  • بررسی اتصال شبکه و اطمینان از فعال بودن اینترنت و سرویس SSH روی سرور
  • کنترل تنظیمات فایروال و پروکسی که ممکن است اتصال SSH را مسدود کرده باشند.
  • استفاده از دستور ping برای تست دسترسی به IP سرور:

ping server_ip

پاسخ مثبت نشان‌دهنده در دسترس بودن سرور و اتصال شبکه است، در غیر این صورت باید مسیر شبکه و تنظیمات فایروال بررسی شود.

3. خطای Permission denied

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

  • اطمینان از صحت نام کاربری و رمز عبور وارد شده
  • بررسی مجوزهای فایل کلید خصوصی با دستور زیر:

chmod 600 ~/.ssh/id_rsa

این کار باعث می‌شود کلید خصوصی فقط برای کاربر قابل دسترسی باشد.

  • در صورت استفاده از کلید عمومی، اطمینان از قرارگیری صحیح آن در مسیر ~/.ssh/authorized_keys و صحت محتوای کلید

4. خطای Host key verification failed

این خطا در وصل شدن به SSH زمانی رخ می‌دهد که کلید میزبان سرور تغییر کرده باشد یا فایل known_hosts خراب شده باشد. SSH برای امنیت اتصال، اعتبار میزبان را بررسی می‌کند و هر گونه تغییر یا ناهماهنگی باعث نمایش این خطا می‌شود.  راه‌حل‌های برطرف کردن این مشکل عبارتند از:

  • بررسی تغییرات کلید میزبان و تایید آن در اولین اتصال.
  • اگر از اعتبار کلید مطمئن هستید، می‌توانید فایل ~/.ssh/known_hosts را حذف کرده و اتصال مجدد برقرار کنید تا SSH کلید جدید را ثبت کند.

خطای Host key verification failed

دستورات کاربردی و متداول در SSH و ترمینال

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

دستورات ناوبری و مدیریت فایل‌ها

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

  • ls: نمایش فایل‌ها و پوشه‌های موجود در دایرکتوری فعلی. این دستور سریع‌ترین راه برای دیدن محتویات یک مسیر است.
  • ls -la: نمایش جزئیات کامل فایل‌ها، شامل مجوزها، مالک، گروه و تاریخ آخرین تغییر. برای بررسی دسترسی‌ها و مالکیت فایل‌ها کاربردی است.
  • cd /path: تغییر مسیر به دایرکتوری مشخص. با این دستور می‌توان مستقیماً به مسیر مورد نظر منتقل شد.
  • cd ..: بازگشت به دایرکتوری بالاتر. این دستور برای حرکت سریع در ساختار دایرکتوری‌ها مفید است.
  • pwd: نمایش مسیر کامل دایرکتوری فعلی. کمک می‌کند مطمئن شوید در مسیر صحیح قرار دارید.
  • mkdir my_directory: ایجاد پوشه جدید با نام مشخص. قبل از ایجاد پوشه، اطمینان از مسیر فعلی ضروری است.
  • rm -rf folder_name: حذف پوشه به همراه تمام محتویات آن. این دستور بسیار قدرتمند است و باید با احتیاط استفاده شود، زیرا بازیابی فایل‌ها معمولاً امکان‌پذیر نیست.
  • cp file1 file2: کپی یک فایل به مسیر یا نام جدید. برای نسخه‌برداری سریع از فایل‌ها کاربرد دارد.
  • cp -r folder1 folder2: کپی یک پوشه به همراه تمام محتویات آن. این دستور برای انتقال پروژه‌ها یا پشتیبان‌گیری مفید است.

دستورات ویرایش فایل‌ها

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

  • nano my_file.txt: ویرایش ساده و سریع فایل‌ها با محیط کاربر پسند. برای کاربران مبتدی مناسب است و امکان ذخیره و خروج آسان دارد.
  • vim my_file.txt: ویرایش حرفه‌ای و پیشرفته فایل‌ها با امکانات کامل مانند جستجو، جایگزینی، undo/redo و مدیریت چند فایل همزمان. مناسب کاربران حرفه‌ای و سرورهای پیچیده

دستورات جستجو

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

  • grep ‘pattern’ file.txt: جستجوی یک عبارت مشخص در داخل فایل. می‌توانید از آن برای پیدا کردن تنظیمات یا لاگ‌ها استفاده کنید.
  • find / -name ‘myfile.txt’: جستجوی فایل بر اساس نام در کل سیستم. برای پیدا کردن فایل‌های گمشده یا بررسی مسیرهای خاص مفید است.

مدیریت فرآیندها

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

  • ps aux: نمایش تمام فرآیندهای در حال اجرا همراه با اطلاعات PID، میزان مصرف CPU و حافظه، کاربر اجراکننده و مسیر فایل اجرایی
  • kill PID: متوقف کردن فرآیند مشخص با شناسه PID. برای متوقف کردن برنامه‌های مشکل‌دار یا آزاد کردن منابع سیستم استفاده می‌شود.

انتقال فایل و امنیت

انتقال امن فایل‌ها بین سیستم محلی و سرور اهمیت بالایی دارد. استفاده از دستورات زیر به شما امکان می‌دهد فایل‌ها را بدون افشای اطلاعات منتقل و دسترسی بدون رمز عبور را فعال کنید.

  • scp source_file user@server:/destination: انتقال فایل به سرور به صورت امن و رمزگذاری شده
  • sftp user@server: انتقال فایل به صورت تعاملی و مدیریت محتوا با قابلیت مشاهده دایرکتوری‌ها
  • ssh-copy-id user@server: افزودن کلید عمومی برای ورود بدون نیاز به رمز عبور. این دستور باعث افزایش امنیت و سرعت اتصال می‌شود.

انتقال امن فایل‌ها بین سیستم محلی و سرور

دانلود و مدیریت فایل‌ها

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

  • wget URL: دانلود فایل از اینترنت با امکان ادامه دانلود و مدیریت اتصال
  • tar -czvf archive.tar.gz folder: فشرده‌سازی پوشه و آماده‌سازی برای انتقال یا ذخیره‌سازی
  • tar -xzvf archive.tar.gz: استخراج فایل‌های فشرده شده و بازگرداندن ساختار اصلی پوشه‌ها

نکات مهم و پیشرفته در وصل شدن به SSH

برای افزایش امنیت و کارایی SSH، رعایت نکات زیر ضروری است. این نکات به شما امکان می‌دهند اتصال امن، مدیریت پروژه و محافظت از داده‌ها را به صورت حرفه‌ای انجام دهید.

  • تغییر پورت پیش‌فرض SSH: تغییر پورت پیش‌فرض ۲۲ به عدد دلخواه باعث کاهش خطر حملات خودکار و ربات‌های اسکن کننده می‌شود.
  • استفاده از کلید عمومی و خصوصی: اتصال بدون رمز عبور و افزایش امنیت با استفاده از کلیدها به جای پسوردهای ساده.
  • تنظیمات SSH: فایل /etc/ssh/sshd_config امکان کنترل زمان اتصال، سطح لاگ، محدودیت‌های کاربری و IPهای مجاز را فراهم می‌کند.
  • حفاظت از فایل‌های SSH: مجوزهای کلید خصوصی باید با chmod 600 تنظیم شود تا از دسترسی غیرمجاز جلوگیری شود.
  • استفاده از تونل SSH: ایجاد تونل برای انتقال امن داده‌ها یا دسترسی به سرویس‌های داخلی شبکه بدون افشای اطلاعات عمومی است.

جمع‌بندی

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

سوالات متداول درباره وصل شدن به SSH

SSH چیست و چرا مهم است؟

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

چطور می‌توانم بدون پسورد به سرور وارد شوم؟

با استفاده از جفت کلید عمومی و خصوصی، می‌توانید ورود بدون پسورد را فعال کنید. کلید عمومی باید در مسیر ~/.ssh/authorized_keys سرور قرار گیرد.

خطای Connection refused هنگام اتصال SSH به چه معناست؟

این خطا نشان می‌دهد که سرویس SSH روی سرور فعال نیست یا فایروال اتصال را مسدود کرده است. بررسی سرویس و پورت SSH معمولاً مشکل را حل می‌کند.

چگونه می‌توانم فایل‌ها را بین سیستم محلی و سرور منتقل کنم؟

با دستورات scp و sftp می‌توانید فایل‌ها را به صورت امن انتقال دهید. برای ورود بدون پسورد، ابتدا از ssh-copy-id استفاده کنید.

آیا تغییر پورت پیش‌فرض SSH امنیت سرور را افزایش می‌دهد؟

بله، تغییر پورت پیش‌فرض از ۲۲ به عدد دلخواه باعث کاهش حملات خودکار و اسکن‌های رباتیک می‌شود.

مقالات مرتبط
پاسخ دهید

آدرس ایمیل شما منتشر نخواهد شد.قسمتهای مورد نیاز علامت گذاری شده اند *