سطح: مقدماتی تا متوسط  |  مناسب برای: مدیران سرور، کاربران ویندوز، کاربران سرور مجازی لینوکس، پشتیبان‌های فنی، مدیران هاستینگ و افرادی که هنگام اتصال SSH با PuTTY با خطاهای Connection refused، Connection timed out یا Access denied روبه‌رو می‌شوند

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

خطاهایی مثل Network error: Connection refused، Network error: Connection timed out، Access denied، Server unexpectedly closed network connection یا هشدار PuTTY Security Alert هرکدام معنی متفاوتی دارند. بعضی از این خطاها به تنظیمات PuTTY مربوط‌اند، بعضی به فایروال، بعضی به خاموش بودن سرویس SSH، بعضی به اشتباه بودن IP یا پورت، و بعضی هم به مشکل احراز هویت یا کلید SSH.

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

فهرست مطالب

PuTTY چیست و چه کاربردی دارد؟

PuTTY یک نرم‌افزار رایگان و سبک برای اتصال به سرورها از طریق پروتکل‌هایی مثل SSH، Telnet و Serial است. در دنیای مدیریت سرور، مهم‌ترین کاربرد آن اتصال SSH از ویندوز به سرورهای لینوکسی است.

با PuTTY می‌توانید به سرور لینوکس متصل شوید و کارهایی مثل این انجام دهید:

  • نصب و به‌روزرسانی پکیج‌ها
  • مدیریت سرویس‌هایی مثل Nginx، Apache، MySQL و PHP-FPM
  • بررسی لاگ‌های سرور
  • مدیریت فایل‌ها از طریق خط فرمان
  • اجرای دستورات امنیتی و فایروال
  • عیب‌یابی کندی، خطا یا قطعی سرویس‌ها

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

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

قبل از عیب‌یابی خطاهای PuTTY چه چیزهایی را بررسی کنیم؟

قبل از اینکه وارد جزئیات هر خطا شویم، چند مورد پایه را بررسی کنید. بسیاری از خطاهای PuTTY به یکی از همین موارد ساده مربوط می‌شوند.

موردچیزی که باید بررسی شود
IP یا Hostnameمطمئن شوید IP سرور یا نام دامنه را درست وارد کرده‌اید
Portپورت SSH معمولاً 22 است، اما ممکن است روی سرور شما تغییر کرده باشد
Connection Typeدر PuTTY نوع اتصال باید روی SSH باشد، نه Telnet یا Raw
وضعیت سرورسرور باید روشن و از شبکه قابل دسترس باشد
فایروالپورت SSH باید در فایروال سرور، دیتاسنتر و سیستم شما باز باشد
نام کاربرینام کاربری SSH باید درست باشد؛ مثلاً root، ubuntu، admin یا کاربر اختصاصی
رمز یا کلید SSHروش احراز هویت باید با تنظیمات سرور هماهنگ باشد

در PuTTY، بخش اصلی اتصال در صفحه اول قرار دارد. مقدار Host Name را با IP یا دامنه سرور پر کنید، مقدار Port را روی پورت SSH بگذارید و Connection type را روی SSH قرار دهید.

رفع خطای Network error: Connection refused در PuTTY

خطای زیر یکی از رایج‌ترین خطاهای PuTTY است:

Network error: Connection refused

این خطا یعنی PuTTY به سرور رسیده، اما اتصال توسط سرور یا یکی از لایه‌های بین مسیر رد شده است. طبق مستندات PuTTY، این خطا معمولاً زمانی رخ می‌دهد که سرور سرویس موردنظر را روی آن پورت ارائه نمی‌کند یا پروتکل/پورت اشتباه انتخاب شده است. برای مطالعه بیشتر می‌توانید مستندات رسمی PuTTY درباره Connection refused را ببینید.

دلایل رایج این خطا:

  • سرویس SSH روی سرور نصب یا فعال نیست.
  • پورت SSH اشتباه وارد شده است.
  • SSH روی پورت دیگری غیر از 22 اجرا می‌شود.
  • فایروال سرور اتصال را reject می‌کند.
  • سرور روی IP موردنظر SSH listen نمی‌کند.
  • به‌جای SSH، پروتکل اشتباه انتخاب شده است.

روش رفع خطای Connection refused

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

sudo systemctl status ssh

در بعضی توزیع‌ها نام سرویس ممکن است sshd باشد:

sudo systemctl status sshd

اگر سرویس اجرا نیست:

sudo systemctl start ssh

یا:

sudo systemctl start sshd

برای فعال شدن خودکار بعد از ریبوت:

sudo systemctl enable ssh

همچنین بررسی کنید SSH روی چه پورتی listen می‌کند:

sudo ss -tulpn | grep ssh

اگر خروجی نشان داد SSH روی پورت دیگری مثل 2222 اجرا می‌شود، در PuTTY هم باید همان پورت را وارد کنید.

رفع خطای Network error: Connection timed out در PuTTY

خطای زیر یعنی PuTTY پاسخی از سرور دریافت نکرده است:

Network error: Connection timed out

طبق مستندات PuTTY، این خطا زمانی رخ می‌دهد که اتصال به سرور هیچ پاسخی دریافت نکند؛ مثلاً سرور از شبکه جدا باشد، خاموش باشد، IP اشتباه باشد یا مسیر شبکه/فایروال پاسخ را مسدود کرده باشد. مستندات رسمی PuTTY درباره Connection timed out همین موضوع را توضیح می‌دهد.

دلایل رایج:

  • IP سرور اشتباه است.
  • سرور خاموش یا از شبکه خارج است.
  • پورت SSH در فایروال drop شده است.
  • فایروال دیتاسنتر یا Cloud Firewall مسیر را بسته است.
  • مشکل routing یا اختلال شبکه وجود دارد.
  • ISP یا شبکه محلی شما اتصال به آن IP یا پورت را مسدود کرده است.

روش رفع خطای Connection timed out

ابتدا از ویندوز تست ping بگیرید:

ping SERVER_IP

اگر ping پاسخ نمی‌دهد، الزاماً به معنی خاموش بودن سرور نیست؛ چون ممکن است ICMP بسته باشد. اما اگر قبلاً پاسخ می‌داد و حالا نمی‌دهد، باید وضعیت شبکه را بررسی کنید.

برای تست پورت SSH در Windows PowerShell:

Test-NetConnection SERVER_IP -Port 22

اگر پورت SSH شما سفارشی است، مثلاً 2222:

Test-NetConnection SERVER_IP -Port 2222

اگر مقدار TcpTestSucceeded برابر False بود، مشکل احتمالاً از بسته بودن پورت، فایروال، اشتباه بودن IP یا در دسترس نبودن سرور است.

برای بررسی مسیر شبکه، می‌توانید از MTR یا traceroute هم استفاده کنید. مقاله آموزش اجرای MTR در ویندوز و لینوکس در این مورد کمک می‌کند.

رفع خطای Access denied در PuTTY

اگر PuTTY به سرور وصل می‌شود اما بعد از وارد کردن نام کاربری یا رمز، پیام زیر را می‌بینید:

Access denied

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

دلایل رایج:

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

راهکارها

نام کاربری را با دقت بررسی کنید. در برخی سرورها نام کاربری پیش‌فرض بسته به سیستم‌عامل متفاوت است:

سیستم‌عامل یا Imageنام کاربری رایج
Ubuntuubuntu
Debiandebian یا کاربر تعریف‌شده
CentOS / AlmaLinux / Rockyroot یا کاربر تعریف‌شده
برخی سرویس‌های ابریadmin، cloud-user یا نام کاربری اختصاصی

اگر ورود با رمز غیرفعال شده، باید از کلید SSH استفاده کنید. در PuTTY، کلید خصوصی معمولاً با فرمت .ppk تنظیم می‌شود و از مسیر زیر به PuTTY معرفی می‌شود:

Connection > SSH > Auth > Credentials > Private key file for authentication

هشدار PuTTY Security Alert یا Host Key Warning چیست؟

گاهی هنگام اتصال، PuTTY هشدار امنیتی نمایش می‌دهد و می‌گوید کلید سرور جدید است یا با کلید قبلی تفاوت دارد. این هشدار را نباید بی‌دقت نادیده بگیرید.

اگر برای اولین بار به سرور وصل می‌شوید، نمایش هشدار host key طبیعی است. PuTTY از شما می‌خواهد کلید سرور را تأیید کنید تا در دفعات بعد بتواند تغییرات مشکوک را تشخیص دهد.

اما اگر قبلاً به همین سرور وصل می‌شدید و حالا ناگهان هشدار تغییر host key می‌بینید، چند احتمال وجود دارد:

  • سیستم‌عامل سرور reinstall شده است.
  • IP به سرور دیگری منتقل شده است.
  • کلیدهای SSH سرور تغییر کرده‌اند.
  • به IP یا دامنه اشتباهی وصل شده‌اید.
  • در حالت بدبینانه، احتمال حمله Man-in-the-Middle وجود دارد.

اگر مطمئن نیستید، قبل از Accept کردن هشدار، fingerprint کلید SSH را از طریق پنل سرور، کنسول مستقیم یا پشتیبانی دیتاسنتر بررسی کنید.

رفع خطای Server unexpectedly closed network connection

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

Server unexpectedly closed network connection

دلایل احتمالی:

  • سرویس SSH کرش کرده یا restart شده است.
  • فایروال یا ابزار امنیتی اتصال را قطع کرده است.
  • سرور به‌دلیل محدودیت منابع پاسخ نمی‌دهد.
  • تنظیمات SSH اجازه ورود به کاربر را نمی‌دهد.
  • Fail2Ban یا CSF آی‌پی شما را مسدود کرده است.
  • مشکل شبکه باعث قطع اتصال شده است.

اگر به کنسول سرور دسترسی دارید، لاگ‌های SSH را بررسی کنید:

sudo journalctl -u ssh -n 100

یا در بعضی توزیع‌ها:

sudo journalctl -u sshd -n 100

در Ubuntu و Debian می‌توانید لاگ احراز هویت را هم بررسی کنید:

sudo tail -f /var/log/auth.log

در CentOS، AlmaLinux و Rocky Linux:

sudo tail -f /var/log/secure

رفع خطای No supported authentication methods available

این خطا معمولاً زمانی دیده می‌شود که سرور فقط یک روش خاص احراز هویت را قبول می‌کند، اما PuTTY آن روش را ارائه نکرده است.

No supported authentication methods available

دلایل رایج:

  • سرور فقط کلید SSH را قبول می‌کند، اما شما کلید معرفی نکرده‌اید.
  • کلید SSH با فرمت مناسب PuTTY نیست.
  • کلید خصوصی اشتباه انتخاب شده است.
  • کاربر موردنظر کلید عمومی شما را در authorized_keys ندارد.
  • ورود با password روی سرور غیرفعال شده است.

اگر کلید شما با فرمت OpenSSH است، ممکن است لازم باشد آن را با PuTTYgen به فرمت .ppk تبدیل کنید. سپس در PuTTY مسیر کلید را در بخش Auth تنظیم کنید.

رفع خطای Permission denied publickey

خطای زیر معمولاً در اتصال‌های مبتنی بر کلید SSH رخ می‌دهد:

Permission denied (publickey)

این خطا یعنی سرور کلید ارائه‌شده را برای آن کاربر قبول نکرده است.

مواردی که باید بررسی کنید:

  • آیا با نام کاربری درست وارد می‌شوید؟
  • آیا کلید خصوصی درست را در PuTTY انتخاب کرده‌اید؟
  • آیا کلید عمومی در فایل ~/.ssh/authorized_keys همان کاربر وجود دارد؟
  • آیا سطح دسترسی پوشه .ssh و فایل authorized_keys درست است؟
  • آیا ورود SSH برای آن کاربر مجاز است؟

سطح دسترسی پیشنهادی در لینوکس:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

اگر مالک فایل‌ها اشتباه است:

chown -R username:username ~/.ssh

صفحه PuTTY باز می‌شود اما چیزی نمایش داده نمی‌شود

گاهی پنجره PuTTY باز می‌شود اما صفحه سیاه می‌ماند یا prompt ورود نمایش داده نمی‌شود. این حالت می‌تواند چند علت داشته باشد.

  • اتصال کند است و سرور با تأخیر پاسخ می‌دهد.
  • پورت اشتباه انتخاب شده است.
  • به سرویسی غیر از SSH وصل شده‌اید.
  • فایروال اتصال را نیمه‌کاره نگه داشته است.
  • سرور زیر فشار منابع است و login prompt دیر نمایش داده می‌شود.

ابتدا چند ثانیه صبر کنید. اگر چیزی نمایش داده نشد، پورت و پروتکل را بررسی کنید. Connection Type در PuTTY باید روی SSH باشد. سپس با PowerShell تست کنید:

Test-NetConnection SERVER_IP -Port 22

اگر پورت باز است اما prompt نمی‌آید، بهتر است لاگ‌های SSH و وضعیت منابع سرور را بررسی کنید.

بررسی پورت SSH و تفاوت پورت 22 با پورت سفارشی

پورت پیش‌فرض SSH عدد 22 است، اما بسیاری از مدیران سرور برای کاهش اسکن‌های خودکار، پورت SSH را تغییر می‌دهند. اگر پورت تغییر کرده باشد و شما همچنان در PuTTY پورت 22 را وارد کنید، معمولاً با Connection refused یا timed out مواجه می‌شوید.

برای دیدن پورت SSH روی سرور:

sudo grep -i "^Port" /etc/ssh/sshd_config

اگر خروجی چیزی مثل این باشد:

Port 2222

در PuTTY هم باید Port را روی 2222 بگذارید.

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

بررسی فایروال سرور و ویندوز

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

بررسی UFW در Ubuntu

sudo ufw status

اگر SSH روی پورت 22 است:

sudo ufw allow 22/tcp

اگر SSH روی پورت 2222 است:

sudo ufw allow 2222/tcp

بررسی firewalld در CentOS، AlmaLinux و Rocky Linux

sudo firewall-cmd --list-all

باز کردن پورت 22:

sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload

برای پورت سفارشی:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

اگر از فایروال پنل دیتاسنتر یا Cloud Firewall استفاده می‌کنید، باید همان پورت را آنجا هم باز کنید. فقط باز بودن پورت در سیستم‌عامل کافی نیست.

بررسی سرویس SSH روی سرور لینوکس

اگر PuTTY خطای Connection refused می‌دهد، یکی از اولین کارها بررسی سرویس SSH است. روی Ubuntu/Debian:

sudo systemctl status ssh

روی CentOS/RHEL-based:

sudo systemctl status sshd

اگر SSH نصب نیست، در Ubuntu/Debian:

sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable --now ssh

در CentOS/AlmaLinux/Rocky:

sudo dnf install openssh-server -y
sudo systemctl enable --now sshd

بعد از نصب یا تغییر تنظیمات، وضعیت listen شدن پورت را بررسی کنید:

sudo ss -tulpn | grep ssh

روش‌های تست اتصال قبل از ورود با PuTTY

قبل از اینکه فقط با PuTTY تست کنید، بهتر است از ابزارهای ساده‌تر هم کمک بگیرید.

تست ping

ping SERVER_IP

تست پورت SSH در PowerShell

Test-NetConnection SERVER_IP -Port 22

تست DNS دامنه

nslookup example.com

تست مسیر شبکه

برای بررسی مسیر و packet loss، از MTR یا ابزارهای مشابه استفاده کنید. مقاله آموزش اجرای MTR در این مورد کاربردی است.

اگر سرور شما پشت DNS یا hostname قرار دارد، مطمئن شوید دامنه به IP درست resolve می‌شود. برای درک بهتر DNS، مقاله DNS چیست؟ را بخوانید.

نکات امنیتی هنگام استفاده از PuTTY

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

  • تا حد امکان از کلید SSH به‌جای رمز عبور استفاده کنید.
  • ورود مستقیم root را محدود یا غیرفعال کنید.
  • برای کاربران SSH رمزهای قوی انتخاب کنید.
  • پورت SSH را فقط برای IPهای مورد اعتماد باز کنید، اگر امکان‌پذیر است.
  • Fail2Ban یا ابزار مشابه برای جلوگیری از brute force فعال کنید.
  • هشدار Host Key را بدون بررسی نپذیرید.
  • PuTTY را از منابع معتبر دانلود و به‌روز نگه دارید.
  • کلید خصوصی خود را روی سیستم‌های عمومی یا ناامن ذخیره نکنید.

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

چک‌لیست سریع رفع خطاهای PuTTY

خطا یا مشکلبررسی‌های اصلی
Connection refusedسرویس SSH، پورت، پروتکل، فایروال و listen بودن SSH را بررسی کنید
Connection timed outIP، روشن بودن سرور، مسیر شبکه، فایروال دیتاسنتر و باز بودن پورت را بررسی کنید
Access deniedنام کاربری، رمز، مجاز بودن password login و وضعیت کاربر را بررسی کنید
Host key warningاگر اتصال اول نیست، تغییر کلید سرور را با احتیاط بررسی کنید
Permission denied publickeyکلید خصوصی، authorized_keys، نام کاربری و permissionهای SSH را بررسی کنید
صفحه سیاه PuTTYپورت، پروتکل، وضعیت سرور و پاسخ‌دهی SSH را بررسی کنید
قطع شدن ناگهانی اتصاللاگ SSH، فایروال، Fail2Ban، منابع سرور و شبکه را بررسی کنید

جمع‌بندی

خطاهای PuTTY در ویندوز معمولاً به چند علت مشخص برمی‌گردند: اشتباه بودن IP یا پورت، خاموش بودن سرویس SSH، بسته بودن فایروال، اشتباه بودن نام کاربری یا رمز، مشکل کلید SSH، یا تغییر host key سرور. برای رفع درست مشکل، باید اول نوع خطا را بشناسید و بعد مرحله‌به‌مرحله شبکه، پورت، سرویس SSH و احراز هویت را بررسی کنید.

اگر خطای Connection refused می‌بینید، معمولاً سرور اتصال را رد کرده یا SSH روی آن پورت فعال نیست. اگر Connection timed out می‌بینید، معمولاً PuTTY اصلاً پاسخی از سرور دریافت نکرده و باید IP، مسیر شبکه و فایروال را بررسی کنید. اگر Access denied یا Permission denied می‌بینید، اتصال برقرار است اما احراز هویت مشکل دارد.

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

سوالات متداول

PuTTY چیست؟

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

خطای Connection refused در PuTTY یعنی چه؟

یعنی اتصال توسط سرور یا یکی از لایه‌های بین مسیر رد شده است. معمولاً SSH روی آن پورت فعال نیست، پورت اشتباه است یا فایروال اتصال را reject می‌کند.

خطای Connection timed out در PuTTY یعنی چه؟

یعنی PuTTY هیچ پاسخی از سرور دریافت نکرده است. ممکن است IP اشتباه باشد، سرور خاموش باشد، فایروال مسیر را drop کند یا مشکل شبکه وجود داشته باشد.

چرا PuTTY می‌گوید Access denied؟

این خطا معمولاً به نام کاربری اشتباه، رمز اشتباه، غیرفعال بودن ورود با رمز یا نیاز سرور به کلید SSH مربوط است.

پورت پیش‌فرض SSH چیست؟

پورت پیش‌فرض SSH عدد 22 است، اما ممکن است مدیر سرور آن را به پورت دیگری مثل 2222 تغییر داده باشد.

چطور بفهمم پورت SSH باز است؟

در Windows PowerShell می‌توانید دستور Test-NetConnection SERVER_IP -Port 22 را اجرا کنید. اگر پورت سفارشی دارید، عدد پورت را تغییر دهید.

هشدار PuTTY Security Alert خطرناک است؟

اگر اولین اتصال به سرور است، طبیعی است. اما اگر قبلاً وصل می‌شدید و حالا host key تغییر کرده، باید قبل از قبول کردن هشدار، علت تغییر را بررسی کنید.

چرا با کلید SSH نمی‌توانم وارد شوم؟

ممکن است کلید خصوصی اشتباه باشد، کلید عمومی در authorized_keys کاربر قرار نگرفته باشد، permissionها اشتباه باشند یا نام کاربری درست نباشد.

اگر PuTTY صفحه سیاه نشان دهد چه کنم؟

پروتکل، پورت، وضعیت SSH، فایروال و پاسخ‌دهی سرور را بررسی کنید. همچنین چند ثانیه صبر کنید؛ گاهی سرور کند پاسخ می‌دهد.

برای امنیت بیشتر SSH چه کار کنم؟

از کلید SSH استفاده کنید، ورود مستقیم root را محدود کنید، Fail2Ban فعال کنید، پورت SSH را فقط برای IPهای معتبر باز بگذارید و هشدارهای host key را جدی بگیرید.