حل خطأ ⁦Permission denied⁩ (⁦publickey,password⁩) عند الدخول عبر ⁦SSH⁩

هذا الخطأ يعني أن الخادم وصلك وخدمة ⁦SSH⁩ تعمل، لكنه رفض هويتك: كلمة مرور خاطئة، أو اسم مستخدم خاطئ، أو مفتاح غير مقبول، أو أن الدخول بكلمة المرور معطّل.

آخر تحديث:

تأكد من اسم المستخدم أولًا

كثير من الصور الجاهزة لا تقبل ⁦root⁩ مباشرة وتستخدم اسمًا مثل ⁦ubuntu⁩ أو ⁦admin⁩. اكتب كلمة المرور يدويًا لأن النسخ قد يضيف مسافة في آخرها، ولاحظ أن الطرفية لا تعرض أي حرف أثناء الكتابة.

⁦terminal⁩
$ ⁦ssh ubuntu⁩@⁦SERVER⁩_⁦IP⁩
$ ⁦ssh -v root⁩@⁦SERVER⁩_⁦IP⁩

هل الدخول بكلمة المرور معطّل؟

إذا كان الخطأ يذكر ⁦publickey⁩ فقط فالخادم لا يقبل كلمات المرور. من شاشة الخادم افحص الإعداد الفعلي، وإن أردت تفعيله فعدّل ⁦PasswordAuthentication⁩ إلى ⁦yes⁩ في ⁦/etc/ssh/sshd_config⁩ ثم أعد تشغيل الخدمة.

⁦console⁩
$ ⁦sudo sshd -T⁩ | ⁦grep -Ei⁩ "⁦passwordauthentication⁩|⁦permitrootlogin⁩"
$ ⁦sudo systemctl restart ssh⁩

الدخول بمفتاح ⁦SSH⁩

حدّد مفتاحك صراحة، وتأكد أن المفتاح العام موجود في ملف ⁦authorized_keys⁩ للمستخدم نفسه. يرفض ⁦SSH⁩ المفاتيح إذا كانت صلاحيات الملفات واسعة، وهذه هي الصلاحيات الصحيحة.

⁦terminal⁩
$ ⁦ssh -i⁩ ~/.⁦ssh/id⁩_⁦ed25519 root⁩@⁦SERVER⁩_⁦IP⁩
⁦console⁩
$ ⁦chmod 700⁩ ~/.⁦ssh⁩
$ ⁦chmod 600⁩ ~/.⁦ssh/authorized⁩_⁦keys⁩

سجلات الخادم تخبرك بالسبب الحقيقي

سبب الرفض مكتوب في السجل، مثل صلاحيات خاطئة أو مستخدم غير مسموح. شغّل الأمر من شاشة الخادم، ثم حاول الدخول من جهازك في الوقت نفسه.

⁦console⁩
$ ⁦sudo journalctl -u ssh -f⁩
هل كانت الصفحة مفيدة؟