
امروز قصد داریم به موضوعی اشاره کنیم که شاید کمتر در مورد آن صحبت شده باشد، اما تقریباً همه افرادی که در حوزه IT کار می کنند حداقل یک بار در طول حرفه خود با این مشکل مواجه شده اند.
ممکن است در حین اتصال SSH از دستگاه خود به عنوان کاربر به دستگاه دیگری (به عنوان مثال سرور، سوئیچ و غیره) برای شما اتفاق افتاده باشد، پس از چند ثانیه از کار افتادن سرور، اتصال SSH به آن دستگاه را از دست بدهید. این نوع اتصال ناموفق را می توان با خطاهای رایج زیر نمایش داد:
بازنشانی اتصال
بازنشانی اتصال از طریق ip
اتصال بازنشانی همتا
گاهی اوقات در برخی موارد ممکن است این تصور برای شما پیش بیاید که علت این مشکل مربوط به ISP ISP من و نقاط ضعف آن است (خوب، البته این مورد را نیز می توان در این مشکل گنجاند و نمی توان نقش آن را مقصر دانست. ارائه دهنده داده شما isp). اما از آنجایی که در هر کشوری با هر زیرساختی و حتی در بهترین شرایط ممکن است این اتفاق بیفتد، قصد داریم به یکی از دلایل اصلی و نحوه اصلاح این مشکل اشاره کنیم:
هنگامی که شما به عنوان یک کاربر (کلاینت) پس از برقراری موفقیت آمیز ارتباط بین مبدا و مقصد و برقراری یک جلسه با مقصد خود (سرور، سوئیچ، …) ارتباط برقرار می کنید، می توانید دستورات مورد نظر خود را از طریق این پروتکل اجرا کنید.
با توجه به قوانین موجود در ارتباطات شبکه و همچنین فایروال ها، اگر یک جلسه (در این مورد منظور ارتباط ssh بین مبدا و مقصد است) برای مدتی بدون انجام فعالیت خاصی باز بماند، به طور پیش فرض سیستم و فایروال بعدی بعد از مدت زمان مشخصی بسته می شود (معمولاً 300 ثانیه که بسته به تنظیمات مختلف هر دستگاه می تواند متفاوت باشد) و شما به عنوان یک کاربر با خروجی خطایی که در بالا ذکر کردیم این را مشاهده خواهید کرد.
برای روشن تر شدن این سوال مثالی می زنیم
فکر کنید یک سرور مجازی آلمانی و ssh به سرور خود در آلمان از طریق پورت 22 آماده کرده اید. همه چیز خوب است و مشکلی نیست تا اینکه بعد از چند ساعت کار خسته شوید و برای رفع خستگی میز خود را بگذارید تا چای یا قهوه بنوشید.
در این صورت صفحه اتصال ssh شما باز است و پس از 300 ثانیه از آخرین دستوری که در putty تایپ کرده اید سیستم به طور خودکار این خطا را تشخیص می دهد و از آنجایی که به نظر می رسد شما کاری به سرور ندارید Session شما که همان اتصال ssh شما در آن است. Putty بسته می شود و وقتی برگشتید با خطای تنظیم مجدد اتصال مواجه می شوید.
خب حالا که نشد چیکار کنیم؟ راهکار برای حل این مشکل چیست؟
یکی از راه حل های رایج برای حل این مشکل، افزودن پارامتر keepalive بر اساس نوع سیستم عامل به تنظیمات سرور ssh است.
برای این کار اگر سیستم عامل شما لینوکس است می توانید از دستور زیر استفاده کنید
echo ‘ClientAliveInterval 60’ >> /etc/ssh/sshd_config
پس از انجام این کار باید یک بار سرور ssh را ریستارت کنید تا تنظیمات اعمال شود. برای این کار می توانید از دستور زیر استفاده کنید
Systemctl sshd را ریستارت کنید
برای سفارش سرور مجازی لینوکس می توانید به این لینک مراجعه کنید.
یا اگر از سیستم عامل ویندوز استفاده می کنید، می توانید با ایجاد فایلی به نام config در مسیر زیر، همین کار را انجام دهید.
C:Usersadmin.ssh
و ServerAliveInterval 60 را در فایل بالا قرار دهید.
در مورد نحوه عملکرد عبارت AliveInterval 60 نیز باید بگویم که این دستور هر 60 ثانیه یک بار پیام های خالی را به کلاینت یا سرور ارسال می کند و در نتیجه از بیکاری و در نهایت بسته شدن جلسه توسط سیستم عامل یا فایروال جلوگیری می کند.
موفق باشید ..
تنظیم مجدد پس از اتصال اولین بار در Server.ir | نگرش جهانی، میزبانی ایرانی.