تقوية SSH: المفاتيح والمنفذ والقيود
كيف تُعدّ sshd: تسجيل الدخول بالمفاتيح فقط، وتقييد المستخدمين والعناوين، وتغيير المنفذ، وكيف لا تفقد الوصول أثناء ذلك.
آخر تحديث 23 أغسطس 2026
SSH هو الباب الوحيد إلى الجهاز الذي تستخدمه كل يوم، والهدف الرئيسي لهجمات القوة الغاشمة الآلية. تُعدّه مرة واحدة، وبعد ذلك لا يحتاج إلى أي انتباه.
أجرِ كل التعديلات في ملف منفصل، /etc/ssh/sshd_config.d/99-hardening.conf — بهذه الطريقة لن يطمس تحديث الحزم عملك ويتركك دون وصول.
المفاتيح بدلًا من كلمات المرور
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no
قبل التطبيق، تأكد من أن المفتاح يعمل فعلًا: سجّل الدخول به في نافذة منفصلة. المفاتيح المضافة في تبويب «Access» بلوحة /hosting/vds/m/<id> تذهب إلى المستخدم root؛ أما المستخدمون الآخرون فعليك وضعها في ~/.ssh/authorized_keys يدويًا.
توليد مفتاح من جانبك:
ssh-keygen -t ed25519 -C "work laptop"
ed25519 أقصر وأسرع من RSA. إذا كانت أداتك لا تدعمه، استخدم rsa بطول 4096 بت على الأقل.
من يمكنه تسجيل الدخول
PermitRootLogin prohibit-password
AllowUsers artem deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers هو القاعدة الأكثر فعالية بعد تعطيل كلمات المرور: يتوقف تخمين أسماء الآخرين فورًا. المزيد عن root — تعطيل تسجيل دخول root بكلمة مرور.
تقييد العناوين، إذا كنت تعمل من موقع ثابت:
Match Address 203.0.113.5
PermitRootLogin yes
تغيير المنفذ
نقل SSH من 22 إلى منفذ غير قياسي لا يحميك من هجوم موجّه، لكنه يزيل تقريبًا كل الضجيج الصادر عن الماسحات الآلية في سجلاتك.
Port 2222
ترتيب الخطوات هو هذا تمامًا:
ufw allow 2222/tcp
sshd -t
systemctl restart ssh
ssh -p 2222 artem@<address>
ufw delete allow 22/tcp
قاعدة الجدار الناري تأتي قبل إعادة التشغيل، وإزالة القديمة لا تتم إلا بعد تسجيل دخول ناجح على المنفذ الجديد. راجع أيضًا المنافذ.
التطبيق والتحقق
sshd -t
sshd -T | grep -Ei "passwordauth|permitroot|allowusers|port"
systemctl restart ssh
sshd -t يتحقق من الصياغة، وsshd -T يعرض الإعداد الفعلي النهائي — ذاك، لا ما كتبته في الملف.
أبقِ جلستك الحالية مفتوحة أثناء الإعداد. ستصمد أمام إعادة تشغيل sshd، وعبرها يمكنك التراجع عن تعديل فاشل. وإذا حبست نفسك خارج الخادم — فإن تبويب «Console» في اللوحة يعمل بمعزل عن SSH.
أخطاء شائعة
| الخطأ | النتيجة | الحل |
|---|---|---|
| تعطيل كلمات المرور دون اختبار المفتاح | فقدان كامل للوصول عبر الشبكة | سجّل الدخول عبر وحدة تحكم اللوحة وأعد الإعداد |
التعديل في الملف الرئيسي فوق سطر من sshd_config.d | الإعداد لا يسري | تحقق بواسطة sshd -T |
| تغيير المنفذ دون قاعدة ufw | فقدان الوصول | القاعدة أولًا، ثم المنفذ |
أذونات على ~/.ssh أوسع من 700 | يُتجاهل المفتاح بصمت | chmod 700 ~/.ssh، chmod 600 authorized_keys |
AllowUsers دون اسمك أنت | تحبس نفسك خارج الخادم | وحدة تحكم اللوحة، عدّل الملف |
في
sshd_config، أول ظهور للمعامل هو الذي يفوز، والملفات منsshd_config.dتُضمَّن في البداية. لذا تحقق من النتيجة بواسطةsshd -Tبدلًا من قراءة الملف.
fail2ban سيزيل ما تبقى من ضجيج القوة الغاشمة.