حل خطأ Permission denied (publickey,password) عند الدخول عبر SSH
هذا الخطأ يعني أن الخادم وصلك وخدمة SSH تعمل، لكنه رفض هويتك: كلمة مرور خاطئة، أو اسم مستخدم خاطئ، أو مفتاح غير مقبول، أو أن الدخول بكلمة المرور معطّل.
آخر تحديث:
تأكد من اسم المستخدم أولًا
كثير من الصور الجاهزة لا تقبل root مباشرة وتستخدم اسمًا مثل ubuntu أو admin. اكتب كلمة المرور يدويًا لأن النسخ قد يضيف مسافة في آخرها، ولاحظ أن الطرفية لا تعرض أي حرف أثناء الكتابة.
$ ssh ubuntu@SERVER_IP $ ssh -v root@SERVER_IP
هل الدخول بكلمة المرور معطّل؟
إذا كان الخطأ يذكر publickey فقط فالخادم لا يقبل كلمات المرور. من شاشة الخادم افحص الإعداد الفعلي، وإن أردت تفعيله فعدّل PasswordAuthentication إلى yes في /etc/ssh/sshd_config ثم أعد تشغيل الخدمة.
$ sudo sshd -T | grep -Ei "passwordauthentication|permitrootlogin" $ sudo systemctl restart ssh
الدخول بمفتاح SSH
حدّد مفتاحك صراحة، وتأكد أن المفتاح العام موجود في ملف authorized_keys للمستخدم نفسه. يرفض SSH المفاتيح إذا كانت صلاحيات الملفات واسعة، وهذه هي الصلاحيات الصحيحة.
$ ssh -i ~/.ssh/id_ed25519 root@SERVER_IP$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys
سجلات الخادم تخبرك بالسبب الحقيقي
سبب الرفض مكتوب في السجل، مثل صلاحيات خاطئة أو مستخدم غير مسموح. شغّل الأمر من شاشة الخادم، ثم حاول الدخول من جهازك في الوقت نفسه.
$ sudo journalctl -u ssh -f
