آموزشی لینوکس

خطای Permission Denied در SSH چیست و چگونه آن را حل کنیم؟

یکی از خطاهای رایج هنگام اتصال به سرور لینوکس از طریق SSH، پیام Permission Denied است. این خطا معمولاً زمانی نمایش داده می‌شود که اطلاعات ورود، نام کاربری، کلید SSH یا تنظیمات دسترسی سرور با درخواست اتصال شما مطابقت نداشته باشد.

برای مثال، ممکن است هنگام اتصال با دستور زیر:

ssh root@SERVER_IP

با خطایی مشابه موارد زیر مواجه شوید:

Permission denied, please try again.

یا:

Permission denied (publickey).

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

در این مقاله، مهم‌ترین دلایل خطای Permission Denied در SSH و روش بررسی و رفع آن‌ها را مرحله‌به‌مرحله بررسی می‌کنیم.

خطای Permission Denied در SSH یعنی چه؟

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

وقتی سرور درخواست اتصال را دریافت می‌کند، بررسی می‌کند که آیا کاربر موردنظر اجازه ورود دارد یا خیر.

اگر این بررسی موفق نباشد، ممکن است خطای Permission Denied نمایش داده شود.

به زبان ساده:

سرور شما را شناسایی کرده، اما اطلاعات احراز هویت ارائه‌شده را قبول نکرده یا کاربر اجازه ورود از طریق SSH را ندارد.

مهم‌ترین انواع خطای Permission Denied

قبل از حل مشکل، متن کامل خطا را بررسی کنید. چند حالت بسیار رایج وجود دارد.

۱. خطای Permission denied, please try again

مثلاً:

user@192.168.1.100's password:
Permission denied, please try again.

این حالت معمولاً به رمز عبور یا حساب کاربری مربوط است.

۲. خطای Permission denied (publickey)

اگر پیام زیر را مشاهده کردید:

Permission denied (publickey).

احتمالاً سرور برای ورود به SSH Key نیاز دارد و کلید صحیح در اختیار SSH Client قرار نگرفته است.

۳. خطای Permission denied (publickey,password)

ممکن است سرور چند روش احراز هویت را فعال کرده باشد:

Permission denied (publickey,password).

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

دلیل اول: وارد کردن نام کاربری اشتباه

یکی از ساده‌ترین دلایل خطای Permission Denied، استفاده از نام کاربری اشتباه است.

برای مثال:

ssh admin@SERVER_IP

در حالی که کاربر واقعی روی سرور ubuntu است.

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

راه‌حل

اگر VPS شما Ubuntu باشد، بسته به نحوه نصب و ارائه سرویس ممکن است کاربر پیش‌فرض متفاوت باشد.

برای مثال:

ssh ubuntu@SERVER_IP

یا:

ssh root@SERVER_IP

البته استفاده از root فقط در صورتی امکان‌پذیر است که ورود مستقیم Root از طریق SSH روی سرور مجاز باشد.

دلیل دوم: رمز عبور اشتباه است

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

به موارد زیر توجه کنید:

🔹 زبان صفحه‌کلید

🔹 فعال بودن Caps Lock

🔹 فاصله اضافی

🔹 اشتباه در حروف بزرگ و کوچک

🔹 استفاده از رمز مربوط به کاربر دیگر

🔹 تغییر رمز عبور پس از ایجاد VPS

در لینوکس حروف بزرگ و کوچک متفاوت هستند.

برای مثال:

Password123

با:

password123

یکسان نیست.

دلیل سوم: ورود با Root از طریق SSH غیرفعال است

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

ssh root@SERVER_IP

یکی از دلایل ممکن است غیرفعال بودن ورود مستقیم Root باشد.

تنظیمات SSH معمولاً در فایل زیر قرار دارد:

/etc/ssh/sshd_config

برای بررسی تنظیمات می‌توانید از دستور زیر استفاده کنید:

grep -i PermitRootLogin /etc/ssh/sshd_config

اگر مقدار PermitRootLogin روی no باشد، ورود مستقیم Root غیرفعال است و باید از یک کاربر دیگر استفاده کنید یا تنظیمات را تغییر دهید. در صورت نیاز به راهنمایی تخصصی، می‌توانید با ایرانیکاسرور تماس بگیرید.

سرور مجازی پایدار با دسترسی SSH بدون دردسر

اگر می‌خواهید بدون خطاهای مکرر Permission Denied، SSH را روی سرور خود راه‌اندازی کنید، ایرانیکاسرور بهترین انتخاب است.

🔹 منابع اختصاصی CPU و RAM برای عملکرد پایدار
🔹 دیسک NVMe برای I/O سریع و بدون گلوگاه
🔹 پهنای باند نامحدود و آپ‌تایم بالا
🔹 پشتیبانی ۲۴/۷ از طریق تیکت و تلفن

تماس با پشتیبانی: 91302460021  | ایرانیکاسرور

دلیل چهارم: کلید SSH اشتباه یا تنظیم‌نشده

اگر سرور شما فقط با Public Key اجازه ورود می‌دهد و کلید خصوصی شما در مسیر درست قرار ندارد یا مجوزهای فایل کلید اشتباه است، خطای Permission denied (publickey) رخ می‌دهد.

⚠️ هشدار: مجوزهای فایل کلید خصوصی باید 600 و پوشه .ssh باید 700 باشد. در غیر این صورت SSH از خواندن کلید خودداری می‌کند.

برای تنظیم مجوزها:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/authorized_keys

همچنین مطمئن شوید که کلید عمومی شما در فایل authorized_keys روی سرور قرار گرفته است.

دلیل پنجم: محدودیت‌های فایروال یا Fail2Ban

گاهی IP شما به دلیل تلاش‌های ناموفق مکرر توسط Fail2Ban بلاک شده است. در این حالت حتی با اطلاعات صحیح نیز نمی‌توانید وارد شوید.

برای بررسی وضعیت Fail2Ban:

sudo fail2ban-client status sshd

اگر IP شما در لیست بلاک بود، می‌توانید آن را آزاد کنید:

sudo fail2ban-client set sshd unbanip YOUR_IP

همچنین بررسی کنید که فایروال (مثل UFW یا iptables) پورت 22 را باز گذاشته باشد.

جمع‌بندی و راهکار نهایی

خطای Permission Denied در SSH معمولاً یکی از این دلایل را دارد:

🔹 نام کاربری اشتباه

🔹 رمز عبور نادرست

🔹 غیرفعال بودن ورود Root

🔹 مشکل در کلید SSH یا مجوزهای آن

🔹 بلاک شدن توسط فایروال یا Fail2Ban

با بررسی مرحله‌به‌مرحله این موارد، می‌توانید مشکل را شناسایی و رفع کنید. اگر همچنان به مشکل خوردید، تیم پشتیبانی ایرانیکاسرور آماده کمک به شماست.

مشکل SSH دارید؟ ما رایگان بررسی می‌کنیم

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

تماس با پشتیبانی:91302460021  | ایرانیکاسرور

🎯 چالش آموزشی
مباحثی که در این مقاله یاد گرفتید را در عمل پیاده‌سازی کنید و نتیجه را با ما به اشتراک بگذارید.
شروع چالش

💬 دیدگاه‌ها 0

هنوز دیدگاهی ثبت نشده است. اولین نفری باشید که نظر می‌دهید!

✍️ دیدگاه خود را بنویسید