رفع خطای اتصال SSH Connection Refused

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


چه چیزی باعث خطای رد اتصال SSH می شود؟

SSH پروتکلی است که برای ورود ایمن از راه دور و سایر خدمات شبکه ایمن در یک شبکه ناامن استفاده می‌شود. دلایل مختلفی وجود دارد که ممکن است هنگام تلاش برای اتصال از طریق SSH با خطای  Connection Refused روبرو شوید:

  1.  پورت SSH نادرست

SSH به طور پیشفرض از پورت 22 استفاده می‌کند، اما بسیاری از متخصصان امنیتی توصیه می‌کنند که آن را به چیزی دلخواه تغییر داده تا حملات brute force را کاهش دهید. اگر می‌خواهید به پورت دیگری متصل شوید که برای SSH باز یا پیکربندی نشده است، با خطای Connection Refused مواجه می‌شوید.

 

  1.  اعتبارنامه ورود SSH نادرست

دو راه اصلی برای ورود به سرور از طریق SSH وجود دارد؛ استفاده از رمز عبور (password) یا کلید (SSH keys). اگر ترکیب نام کاربری و رمز عبور (username-password) را اشتباه وارد کنید یا از کلید SSH نادرست استفاده کنید، SSH daemon روی سرور اتصال را رد می‌کند.

 

  1.  SSH روی سرور نصب نشده است

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

systemctl status ssh

در مثال بالا، می‌بینیم که سرور وضعیت Active (در حال اجرا) را نمایش می دهد که به این معنی است که آماده پذیرش درخواست‌های SSH ورودی است.

  1. دسترسی SSH غیرفعال شده است

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

  1. کانفلیکت فایروال سرور با SSH 

اغلب، سرورها برای مقاومت در برابر حملات سایبری در پشت فایروال هستند. اگر فایروال شما ترافیک ورودی در پورت SSH را مسدود کند، با خطای connection refused مواجه خواهید شد. باید تنظیمات فایروال را تنظیم کنید تا امکان اتصال SSH فراهم شود.

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


چگونه خطای رد اتصال SSH را برطرف کنیم

در ادامه چند مرحله وجود دارد که می‌توانید برای عیب یابی و رفع خطای Connection Refused بردارید:

  1. پورت SSH خود را تایید کنید

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

می‌توانید پورت SSH را با بررسی فایل پیکربندی SSH (/etc/ssh/sshd_config) روی سرور با استفاده از دستور زیر تایید کنید:


grep Port /etc/ssh/sshd_config

در مثال بالا، می بینیم که خط با علامت # شروع می‌شود، یعنی کامنت شده است. اگر می‌خواهید شماره پورت پیش‌فرض را تغییر دهید، می‌توانید این فایل پیکربندی را با استفاده از nano ویرایش کنید و آن را از کامنت خارج کنید.

  1. اعتبار ورود SSH خود را بررسی کنید

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

  1. مطمئن شوید که SSH روی سرور نصب شده است

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


which ssh
apt-get install openssh-server

  1. SSH Access را روی سرور خود فعال کنید

ممکن است SSH daemon روی سرور شما نصب شده باشد، اما به دلایل امنیتی غیرفعال شده باشد. اگر دسترسی SSH غیرفعال شده است، باید آن را با استفاده از دستور زیر فعال کنید:

sudo service ssh start

در مثال بالا، ما از دستور service برای راه‌اندازی SSH daemon استفاده کرده‌ایم که هیچ خطایی برنمی‌گرداند. این بدان معناست که سرویس با موفقیت راه اندازی شد.

علاوه بر این، اگر سرویس از قبل در حال اجرا باشد، هیچ تغییری ایجاد نمی کند، یعنی به کار خود ادامه می دهد.

  1. رفع کانفلیکت فایروال سرور با SSH

اگر فایروال سرور اتصالات SSH را مسدود می‌کند، باید تنظیمات فایروال را تنظیم کنید. این کار را معمولا می‌توان با افزودن یک رول برای اجازه دادن به اتصالات در پورت SSH (معمولا پورت 22) انجام داد. دستور دقیق به نرم افزار فایروال شما بستگی دارد
 به عنوان مثال، برای UFW در اوبونتو:

ufw allow 22

جمع بندی

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