سامانه فعالآپتایم 99.9%دیتاسنتر: ایران / مبین‌وانتحویل آنی و خودکار
← بلاگ

رفع خطاهای رایج اتصال SSH به سرور مجازی (Connection refused و بقیه)

2 مرداد 1405

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

۱. Connection timed out

ssh: connect to host X port 22: Connection timed out

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

  • سرور خاموش است. از پنل کاربری وضعیت روشن/خاموش را ببینید.
  • فایروال پورت ۲۲ را بسته است. اگر به کنسول دسترسی دارید: ufw status و در صورت نیاز ufw allow 22/tcp.
  • مسیر شبکه مسدود است. در ایران گاهی اتصال SSH به بعضی مقصدها فیلتر یا مختل می‌شود. تست کنید از شبکه دیگری (مثلاً اینترنت موبایل) وصل شوید.
  • IP اشتباه است. مطمئن شوید IP سرور را درست وارد کرده‌اید.

برای تشخیص سریع، اول با ping و سپس با تست پورت بررسی کنید:

ping -c 4 SERVER_IP
nc -vz SERVER_IP 22

۲. Connection refused

ssh: connect to host X port 22: Connection refused

این یعنی بسته شما به سرور رسید ولی چیزی روی پورت ۲۲ گوش نمی‌دهد. تفاوت مهمی با timeout دارد: شبکه سالم است، سرویس مشکل دارد. علت‌ها:

  • سرویس SSH متوقف شده: systemctl status ssh و سپس systemctl start ssh.
  • پورت SSH تغییر کرده: اگر قبلاً پورت را عوض کرده‌اید، با ssh -p 2222 user@ip وصل شوید.
  • سرور تازه ری‌استارت شده و هنوز کامل بالا نیامده؛ یک دقیقه صبر کنید.

۳. Permission denied (publickey)

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

  • کلید درست را معرفی کنید: ssh -i ~/.ssh/id_ed25519 root@IP
  • دسترسی فایل‌ها را درست کنید: پوشه ~/.ssh باید ۷۰۰ و authorized_keys باید ۶۰۰ باشد.
  • نام کاربری را بررسی کنید؛ در اوبونتو گاهی ubuntu است نه root.

برای دیدن جزئیات دقیق مذاکره کلید:

ssh -v root@SERVER_IP

۴. Permission denied (password)

یعنی رمز اشتباه است یا ورود با رمز غیرفعال شده. اگر رمز را فراموش کرده‌اید، از پنل کاربری گزینه بازنشانی رمز root را بزنید. اگر مطمئنید رمز درست است، احتمالاً PasswordAuthentication no در /etc/ssh/sshd_config فعال است.

۵. Host key verification failed

پیام هشدار بلندی می‌بینید که می‌گوید هویت سرور تغییر کرده است. این حالت وقتی رخ می‌دهد که سرور را دوباره نصب (rebuild) کرده باشید یا IP به سرور دیگری داده شده باشد. اگر خودتان سرور را نصب مجدد کرده‌اید، طبیعی است و کافی است کلید قدیمی را حذف کنید:

ssh-keygen -R SERVER_IP

اگر چنین کاری نکرده‌اید، این پیام را جدی بگیرید؛ ممکن است نشانه حمله میانی باشد.

۶. Connection reset by peer

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

  • از شبکه یا اپراتور دیگری تست کنید.
  • از کنسول تحت وب پنل کاربری استفاده کنید که روی HTTPS کار می‌کند و معمولاً بدون مشکل وصل می‌شود.
  • پورت SSH را به یک پورت دیگر (مثلاً ۲۲۲۲) تغییر دهید.

۷. اتصال بعد از مدتی قطع می‌شود

اگر نشست بی‌کار شما قطع می‌شود، در فایل ~/.ssh/config کامپیوترتان اضافه کنید:

Host *
    ServerAliveInterval 30
    ServerAliveCountMax 5

روش تشخیص گام‌به‌گام

هر بار که SSH کار نکرد، این ترتیب را طی کنید:

  1. آیا سرور در پنل روشن است؟
  2. آیا ping جواب می‌دهد؟ (ممکن است ICMP بسته باشد و طبیعی است)
  3. آیا پورت ۲۲ باز است؟ nc -vz IP 22
  4. خطای دقیق چیست؟ timeout یعنی شبکه/فایروال، refused یعنی سرویس، denied یعنی احراز هویت.
  5. اگر هیچ‌کدام جواب نداد، از کنسول تحت وب وارد شوید و از داخل سرور بررسی کنید.

جمع‌بندی

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

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

SSHعیب‌یابیآموزشلینوکس

سرور مجازی ایران با تحویل آنی می‌خواهید؟

تحویل خودکار در کمتر از یک دقیقه، دیتاسنتر داخل ایران، دسترسی کامل root و پشتیبانی 24 ساعته.

مشاهده پلن‌ها و قیمت‌ها