8 راه حل رفع خطای SSH Connection Refused در لینوکس
یکی از رایج ترین ارورها هنگام متصل شدن به سرور از راه دور، خطای عدم اتصال با مضمون SSH Connection Refused است. مسائل متنوعی مانند تنظیمات فایروال، عدم نصب کلاینت SSH روی سرور، غیرفعال بودن سرویسهای SSH و … میتوانند منجر به بسته شدن ssh شوند.
"SSH Connection refused” یک خطای ارتباطی در شبکه است که هنگام تلاش برای برقراری ارتباط از راه دور با سرور SSH رخ میدهد. پروتکل SSH امنیت اطلاعات سرور را در هنگام ارتباط از راه دور، تامین و تضمین میکند. به همین جهت برای داشتن یک ارتباط امن، بهتر است هرچه سریعتر این خطا را رفع کنید.
البته در ابتدای امر پیشنهاد میکنیم از اتصال اینترنت در سرور و دستگاه خود مطمئن باشید و سپس به بررسی سایر علل بپردازید.
اگر شما هم پس از خرید سرور مجازی لینوکس با چنین خطایی مواجه شدید با ما همراه باشید تا با 8 علت رایج در بروز خطای SSH Connection Refused و روشهای کاربردی رفع هر یک از آنها در لینوکس آشنا شویم.
SSH چیست و چه کاربردی دارد؟
پروتکل SSH، این امکان را کاربران شبکه می دهد که به صورت ریموت و کاملاً امن به سیستم ها و سرورهای موردنظر خود وصل شوند و کارهای لازم در زمینه مدیریت سیستم ریموت یا اجرای تسک ها موردنظر توسط آن را انجام دهند.
برای آشنایی بیشتر با ویژگی ها و کاربردهای این پروتکل، می توانید مقاله SSH چیست و چه کاربردی دارد؟ را مطالعه کنید.
خطای SSH Connection Refused در لینوکس چه مفهومی دارد ؟
هنگامی که دستگاه شما به هر دلیلی نتواند از طریق SSH به سرور دسترسی یابد، شما با ارور SSH Connection Refused مواجه میشوید. این پیام در واقع نشانگر این است که شما در حال حاضر قادر به برقراری ارتباط با سرور لینوکسی خود از طریق SSH Client نیستید.
این ارور محدود به یک یا دو عامل نبوده و علل زیادی میتواند پشت آن باشد. اولین کاری که باید بکنید این است که علت عدم اتصال را بیابید و سپس برای حل مشکل ssh طبق آموزشهای ارائه شده آن خطا را رفع کنید.
در ابتدا پیشنهاد میکنیم با سادهترین عوامل شروع کنید، مسائلی مانند عدم اتصال سرور و دستگاه به اینترنت، غیرفعال بودن سرور بخاطر مسائلی مانند قطعی برق یا در حال آپدیت بودن، اشتباه بودن آدرس پورت و IP، اشتباه وارد کردن یوزرنیم و پسورد و مچ نبودن Public Key یا کلید عمومی.
پس از آن که این عوامل را بررسی کردید، به بررسی عوامل زیر بپردازید.
لیست 8 علت رایج در بروز خطای SSH Connection Refused
اگر بخواهیم علتهای رایج در بروز ارور Connection Refused در مبحث SSH را نام ببریم، به شرح زیر خواهند بود :
- نصب نبودن SSH Client
- نصب نبودن SSH Daemon روی سرور
- جلوگیری فایروال از اتصال SSH
- بروز اشتباه در وارد کردن آدرس IP و Hostname
- غیرفعال بودن سرویس SSH روی سرور
- محدودیت منابع سرور
- تنظیمات نادرست SSH Client
- مسائل اعتبارسنجی
روشهای کاربردی رفع ارور SSH Connection Refused در لینوکس
حال که بصورت اجمالی با لیست 8 علت رایج در بروز ارور SSH Connection_Refused آشنا شدیم، وقت آن است که روش کاربردی رفع هر خطا را نیز یاد بگیریم.
نصب نبودن SSH Client
در ابتدای کار، بهتر است مطمئن شویم که SSH Client بطور صحیح و کامل بر روی لوکال هاست نصب شده باشد. جهت چک کردن، در سیستمی که به سرور دسترسی دارد عبارت ssh را در ترمینال لینوکس وارد کنید تا از وضعیت کلی سرور SSH مطلع شوید. اگر اطلاعات سرور در ترمینال ظاهر شد، یعنی SSH Client روی سرور شما نصب شدهاست.
در غیر این صورت بایستی دستورات نصب SSH Client را اجرا کنید:
توزیع های مبتنی بر دبیان مثل اوبونتو
sudo apt-get install openssh-client
توزیع های مبتنی بر RedHat مثل Centos
sudo yum –y install openssh-server openssh-clients
توزیع های آرچ لینوکس
pacman -Sy openssh
بعد از نصب کلاینت، می توانید سرویس مربوط به آن را اجرا کنید تا ssh شروع به کار کند:
sudo systemctl start sshd
نصب نبودن SSH Daemon روی سرور لینوکس
جالب است بدانید که علاوه بر نسخهی SSH، به نسخهی SSH Daemon هم نیاز داریم تا بتوانیم اتصال از راه دور را برقرار کنیم. بنابراین لازم است از نصب بودن آن بر روی سرور اطمینان یابیم. برای اطلاع از این موضوع، در ترمینال لینوکس دستور زیر را وارد کنید:
ssh localhost
در صورت نیاز برای راهاندازی مجدد آن دستور زیر را وارد کنید:
sudo service ssh restart
جلوگیری فایروال از اتصال SSH
فایروال در صورت فعال بودن، از سرور در مقابل حملات و برخی اتصالات غیر مجاز محافظت میکند و مانع دسترسی آنها به سرور میشود. در این حالت ممکن است اقدامات فایروال منجر به بسته شدن ssh شود. برای حل این مشکل بایستی تنظیمات فایروال را به صورتی تنظیم کنید که به SSH اجازهی اتصال بدهد.
برای رفع این حالت، ابتدا پنجره ترمینال را باز کرده و سپس فرمان زیر را در آن وارد کنید :
sudo ufw allow ssh
همچنین در مقاله بررسی بلاک بودن IP + رفع مسدود شدن آی پی در فایروال سرور این مطلب بصورت کامل آموزش داده شدهاست.
بروز اشتباه در وارد کردن آدرس IP و Hostname
از دیگر ارورهای رایج، وارد کردن آدرس IP و Hostname بصورت اشتباه است. اگر آدرس IP و Hostname به درستی وارد نشده باشند، عملا امکان برقراری ارتباط بین Client و سرور وجود نخواهد داشت. به همین جهت، حتما آدرس IP و Hostname را مجددا چک و دقت کنید که Hostname به درستی وارد شده باشد و سپس اقدام به برقراری ارتباط نمایید. البته این حالت در برخی موارد به DNS هم مربوط می شود.
غیرفعال بودن سرویس SSH روی سرور
حتی در صورت نصب بودن سرویس SSH، باز هم احتمال دارد که SSH Client نقشی در عدم برقراری ارتباط ایفا کند. چرا که صرفا نصب بودن آن ملاک نبوده و این سرویس حتما باید فعال باشد.
جهت چک کردن فعال بودن SSH دستور زیر را در ترمینال وارد کنید :
sudo service ssh status
اگر فعال نبود، با این دستور میتوانید آن را فعال کنید:
systemctl start sshd
محدودیت منابع سرور
محدودیت منابع سرور به این معنی است که شاید سرور منابع کافی اعم از مموری یا CPU در اختیار ندارد تا میزبان اتصال دیگری باشد یا ممکن است که حداکثر تعداد اتصالات را برقرار کرده باشد.
تنظیمات نادرست SSH Client
احتمال اینکه برخی محدودیتها برای اتصال دستهای از IP ها در تنظیمات سرور اعمال شده باشد وجود دارد. میتوانید به تنظیمات سرور سری بزنید تا از وجود این محدودیتها آگاهی یابید.
مسائل اعتبارسنجی
چنانچه متغیرهای اعتبارسنجی نظیر یوزرنیم، پسورد، کلید SSH و شمارهی پورت به درستی وارد نشده باشند، قادر به برقراری ارتباط با سرور نخواهید بود. به همین جهت از صحت این عوامل اطمینان حاصل فرمایید.
سخن آخر
دلایل زیادی برای بروز مشکل SSH Connection Refused در لینوکس وجود دارد که اکثر آنها به اختلال در عملکرد ssh مربوط می شوند. این اختلال می تواند ناشی از نصب نبودن پکیج های لازم، محدودیت های فایروال یا منابع سیستم باشند که ما سعی کردیم تمام این مشکلات و راهکارهای موثر برای حل آنها را در خدمت شما عزیزان قرار دهیم.