
تعزيز أمان SSH
قم بتأمين SSH على Debian/Ubuntu في تشغيلة واحدة: منفذ جديد، عدم تسجيل الدخول كجذر، مصادقة بالمفتاح، واختياريًا UFW و Fail2Ban.
عند تشغيل البرنامج النصي، سيكتشف نظام التشغيل الخاص بك ويعرض الإعدادات قبل أن يطلب منك المتابعة:

على Debian/Ubuntu:
sudo apt-get install -y git
rm -rf ssh-hardening
git clone https://github.com/spookey007/ssh-hardening.git
cd ssh-hardening
قم بتشغيل هذا في أي وقت تريد أحدث إصدار من البرنامج النصي.
chmod +x ssh_harden.sh script.sh
إذا تخطيت هذه الخطوة، فقد تظهر لك رسالة "command not found" عند تشغيل ./ssh_harden.sh. إذا حدث ذلك، استخدم الخطوة 5 مع sudo bash ssh_harden.sh بدلاً من ذلك.
SSH_PUB_KEY)Linux / macOS
ssh-keygen -t ed25519 -C "[email protected]"
اضغط Enter للمسار الافتراضي (~/.ssh/id_ed25519). اختياري: تعيين عبارة مرور.
اعرض مفتاحك العام (انسخ هذا في SSH_PUB_KEY):
cat ~/.ssh/id_ed25519.pub
Windows (PowerShell أو Git Bash)
ssh-keygen -t ed25519 -C "[email protected]"
اضغط Enter للمسار الافتراضي. اختياري: تعيين عبارة مرور.
اعرض مفتاحك العام:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubtype %USERPROFILE%\.ssh\id_ed25519.pubانسخ السطر بالكامل (يبدأ بـ ssh-ed25519 ...). هذا هو SSH_PUB_KEY الخاص بك.
استبدل القيم بقيمك، ثم قم بتشغيل:
sudo SSH_USER=kamaileo \
SSH_PASS='YourStrongPassword123!' \
SSH_PORT=49221 \
PORTS="5060,5061,10000-20000" \
SSH_PUB_KEY="ssh-ed25519 AAAA... you@yourmachine" \
./ssh_harden.sh
إذا ظهرت لك رسالة "command not found"، استخدم:
sudo bash ssh_harden.sh
(مع نفس SSH_USER=... SSH_PASS=... إلخ في المقدمة).
في نافذة طرفية جديدة، اتصل باستخدام المنفذ الجديد (وليس 22):
ssh -p 49221 kamaileo@YOUR_SERVER_IP
استخدم المنفذ والمستخدم الذي قمت بتعيينه. لا تغلق الجلسة الأصلية إلا بعد التأكد من نجاح تسجيل الدخول وعمل sudo.
استخدم المنفذ الجديد في كل مرة. بعد التعزيز، لن يكون SSH متاحًا على المنفذ 22. اتصل دائمًا باستخدام:
ssh -p <YOUR_PORT> <USER>@<SERVER_IP>
مثال: ssh -p 49221 [email protected]
احتفظ بمخرجات البرنامج النصي عند انتهائه. في النهاية، يطبع البرنامج النصي ملخصًا يحتوي على اسم المستخدم والمنفذ وأمر الاتصال وما إذا تم تعيين كلمة مرور. انسخ هذه الكتلة أو التقط لقطة شاشة واحتفظ بها في مكان آمن. إذا فقدت مفتاح SSH أو نسيت المنفذ أو كلمة المرور، فسيساعدك هذا السجل في الاسترداد أو إعادة الاتصال (على سبيل المثال عبر وحدة التحكم/VNC باستخدام نفس المستخدم وكلمة المرور).
يقوم البرنامج النصي بإخراج كل ما تحتاجه: المستخدم والمنفذ وحالة UFW/Fail2Ban وأمر ssh -p ... الدقيق. لا حاجة للتخمين.
إذا كان SSH_USER موجودًا بالفعل على الخادم، فإن البرنامج النصي لا ينشئ مستخدمًا جديدًا ولا يغير كلمة المرور. يقوم فقط بما يلي:
sudo~/.ssh/authorized_keys إذا قمت بتمرير SSH_PUB_KEYلذا يمكنك تشغيله مرة أخرى "للتعزيز فقط" دون المساس بكلمة المرور الحالية.
على أنظمة التشغيل غير المدعومة، يطبع البرنامج النصي قريبًا 😊 ويخرج دون تغيير أي شيء.
SSH_PUB_KEY حتى تتمكن من تسجيل الدخول بعد تعطيل مصادقة كلمة المرور.ssh -p PORT user@server.إذا كان هذا البرنامج النصي قد وفر لك وقتًا أو أزعجًا، يمكنك دعم المشروع بإكرامية لمرة واحدة.
BTC: 3L1Gc4avD4Bqoi2F9aq6z4heT13fXA8DZ9
شكرًا على أي حال.
| المتغير | مثال | الوظيفة |
|---|
SSH_USER | kamaileo | اسم المستخدم (يتم إنشاؤه إذا كان مفقودًا؛ إذا كان موجودًا، تبقى كلمة المرور دون تغيير). |
SSH_PASS | 'YourPass123!' | كلمة المرور للمستخدمين الجدد فقط. استخدم كلمة مرور قوية. |
SSH_PORT | 49221 | منفذ SSH. ستستخدم: ssh -p 49221 user@server. |
PORTS | "5060,5061,10000-20000" | منافذ إضافية لـ UFW (اختياري). |
SSH_PUB_KEY | "ssh-ed25519 AAAA..." | مفتاحك العام. موصى به بشدة حتى لا تُحظر من الدخول. |
| نظام التشغيل | مدعوم | تم اختباره | تثبيت git |
|---|
| Debian 12 x64 | ✅ | ✅ | sudo apt-get install -y git |
| Debian 11/10, Ubuntu 24/22/20 | ✅ | ❌ | sudo apt-get install -y git |
| RHEL / Rocky / Alma / CentOS | ❌ | ❌ | sudo yum install -y git |
| Fedora | ❌ | ❌ | sudo dnf install -y git |
| Arch | ❌ | ❌ | sudo pacman -Syu git |
| openSUSE | ❌ | ❌ | sudo zypper install -y git |