خطای Connection Refused در SSH

در مرکز محتوای سرور دات آی آر

 

معرفی

آیا در دسترسی به سرور راه دور از طریق SSH مشکل دارید؟ اگر خطای SSH با پیام Connection Refused  دریافت نمودید، ممکن است لازم باشد درخواست را تغییر دهید یا تنظیمات را بررسی کنید.

در این آموزش، رایج ترین دلایل خطای اتصال SSH را بررسی میکنیم.

 

 

چرا وقتی SSH می زنیم اتصال برقرار نمیشود؟

دلایل زیادی وجود دارد که ممکن است هنگام تلاش برای SSH به سرور خود با خطای “Connection Refused” مواجه شوید. برای حل این مشکل، ابتدا باید شناسایی کنید که چرا سیستم اتصال شما را از طریق SSH رد کرده است.

 

  • کلاینت SSH نصب نشده است

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

 

برای بررسی اینکه آیا کلاینت SSH روی سیستم خود دارید یا خیر، کامند های زیر را در سرور ران کنید:

 

ssh

 

 

اگر ترمینال لیستی از گزینه های دستور ssh را ارائه دهد، کلاینت SSH روی سیستم نصب می شود. با این حال، اگر با دستور یافت نشد پاسخ داد، باید OpenSSH Client را نصب کنید.

 

راه حل: SSH Client را نصب کنید

برای نصب SSH Client بر روی دستگاه خود، ترمینال را باز کرده و یکی از دستورات فهرست شده در زیر را اجرا کنید.

 

برای سیستم هایUbuntu/Debian:

 

sudo apt install openssh-client

 

برای سیستم های CentOS/RHEL:

 

sudo yum install openssh-client

 

توجه: برای راهنمای گام به گام نصب، نحوه نصب OpenSSH در CentOS یا نحوه فعال کردن SSH در اوبونتو را بررسی کنید.

 

  • SSH Daemon روی سرور نصب نشده است

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

برای بررسی اینکه آیا SSH در سرور راه دور موجود است، دستور را اجرا کنید:

 

ssh localhost

 

اگر خروجی با Connection Refused پاسخ داد، به نصب SSH روی سرور بروید.

 

 

راه حل: SSH را روی سرور راه دور نصب کنید

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

 

اعتبارنامه اشتباه است

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

 

سپس، بررسی کنید که آیا از آدرس IP صحیح سرور استفاده می کنید یا خیر.

 

در نهایت، بررسی کنید که پورت SSH صحیح را باز کرده اید. شما می توانید با اجرا بررسی کنید:

 

grep Port /etc/ssh/sshd_config

 

خروجی شماره پورت را مانند تصویر زیر نمایش می دهد.

 

 

سرویس SSH از کار افتاده است

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

 

برای بررسی وضعیت سرویس این دستور را وارد کنید:

 

sudo service ssh status

 

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

 

 

راه حل: سرویس SSH را فعال کنید

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

 

systemctl start sshd

 

برای فعال کردن سرویس در هنگام بوت، دستور زیر را اجرا کنید:

 

sudo systemctl enable sshd

 

  • فایروال از اتصال SSH جلوگیری می کند

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

 

اطمینان حاصل کنید که فایروال اتصالات SSH را مسدود نمی کند زیرا ممکن است باعث خطای “اتصال رد شده” شود.

 

راه حل: اجازه اتصال SSH از طریق فایروال را بدهید

برای رفع مشکلی که در بالا به آن اشاره کردیم، می‌توانید از ufw (فایروال بدون عارضه)، ابزار رابط خط فرمان برای مدیریت پیکربندی فایروال استفاده کنید.

دستور زیر را در پنجره ترمینال تایپ کنید تا اتصالات SSH مجاز باشد:

 

sudo ufw allow ssh

 

 

  • پورت SSH بسته است

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

 

اگر پورت بسته باشد، سرور از اتصال خودداری می کند.

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

 

برای فهرست کردن همه پورت هایی که در حال گوش دادن هستند، اجرا کنید:

 

sudo lsof -i -n -P | grep LISTEN

 

پورت 22 را در خروجی پیدا کنید و بررسی کنید که STATE آن روی LISTEN تنظیم شده است یا خیر.

 

همچنین، می توانید بررسی کنید که آیا یک پورت خاص باز است یا خیر، در این مورد، پورت 22:

 

sudo lsof -i:22

 

 

راه حل: پورت SSH را باز کنید.

برای فعال کردن پورت 22 برای LISTEN به درخواست ها، از دستور iptables استفاده کنید:

 

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

 

همچنین می توانید با تغییر تنظیمات فایروال پورت ها را از طریق رابط کاربری گرافیکی باز کنید.

 

  • اشکال زدایی و ثبت SSH

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

 

ssh -v [server_ip]

 

 

به طور متناوب، می توانید استفاده کنید:

 

ssh -vv [server_ip]

 

یا :

 

ssh -vvv [server_ip]

 

نتیجه :

این مقاله برخی از رایج ترین دلایل خطای Connection Refused در SSH را فهرست کرده است. برای عیب یابی مشکل، لیست را مرور کنید و مطمئن شوید که تمام تنظیمات به درستی پیکربندی شده اند.
همچنین در مقاله  میتوانید امنیت SSH و در مقاله تغییر پورت SSH را بررسی بفرمایید.

 

اشتراک گذاری در linkedin

به تیم متخصص ما اعتماد کنید!

تخفیف مخاطبین مرکز محتوا: Blog01

از کد Blog01 می‌تونید برای خرید اشتراک خدمات سرور مجازی و هاست استفاده کنید و از %10 تخفیف تو سفارش این خدمات بهره‌مند بشید!

محتوای مقاله مفید بود؟

5 1 رای
این مقاله چطور بود؟
اشتراک در
اطلاع از
0 دیدگاه
بازخوردهای آنلاین
مشاهده همه دیدگاه ها