- لماذا يجب عليّ إنشاء واستخدام مفتاح SSH؟
- المتطلبات الأساسية والمفاهيم الأساسية
- إنشاء مفتاح SSH على أنظمة Linux/macOS/WSL
- إنشاء مفتاح SSH في نظام التشغيل Windows (باور شيل / ويندوز أوبن إس إس إتش)
- استيراد المفاتيح العامة في AWS EC2 ولوحات التحكم السحابية الأخرى
- أضف المفتاح إلى GitLab/GitHub واستخدمه في التكامل المستمر
- إعدادات الخادم والأمان بعد تثبيت المفتاح
- نصائح عملية لتطبيقات مختلفة
- إدارة المفاتيح، والتناوب، والمعايير
- نصائح إضافية وحلول للمشاكل
- التوصيات الأمنية النهائية
- ملخص وقائمة مراجعة مقترحة
لماذا يجب عليّ إنشاء واستخدام مفتاح SSH؟
في بيئات الحوسبة السحابية ومراكز البيانات الدولية، يُعد تسجيل الدخول الآمن والآلي إلى الخوادم حجر الزاوية في كل عملية من عمليات DevOps، واستضافة المواقع الإلكترونية، والعرض، والذكاء الاصطناعي، وإدارة قواعد البيانات. مفاتيح SSH إنها طريقة قياسية وآمنة وقابلة للبرمجة للمصادقة وتحل محل كلمات المرور الضعيفة.
يقلل استخدام المفاتيح العامة/الخاصة من خطر هجمات القوة الغاشمة، ويسهل أتمتة وتنفيذ ضوابط الوصول الأكثر دقة.
المتطلبات الأساسية والمفاهيم الأساسية
المفتاح الخاص: ملفك السري الذي لا ينبغي الكشف عنه.
المفتاح العام: ملف يتم وضعه على الخادم (authorized_keys).
الخوارزميات الشائعة: ed25519 (مُستَحسَن)، rsa 4096.
المسارات: ~/.ssh/id_* على نظام لينكس/WSL و C:\Users\ .ssh على نظام ويندوز.
الوصول: chmod 700 ~/.ssh و chmod 600 للمفتاح الخاص.
إنشاء مفتاح SSH على أنظمة Linux/macOS/WSL
يوصى بـ ed25519 استخدم هذا الخيار إلا إذا كنت بحاجة إلى RSA لأسباب تتعلق بالتوافق.
خطوات إنشاء وإدارة المفاتيح في شل
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_ed25519 -o -a 100
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/id_rsa -o -a 100
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ls -la ~/.ssh
cat ~/.ssh/id_ed25519.pub
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 [email protected]
chmod 400 my-aws-key.pem
ssh -i my-aws-key.pem [email protected]ملاحظة: في AWS، غالبًا ما تختار المفتاح أو تستورده عند تشغيل مثيل. إذا كان لديك ملف PEM، فاستخدمه كهوية.
إنشاء مفتاح SSH في نظام التشغيل Windows (باور شيل / ويندوز أوبن إس إس إتش)
يحتوي نظام التشغيل Windows 10/11 على عميل OpenSSH؛ يمكنك أيضًا استخدام PuTTY/Puttygen للاتصال باستخدام PuTTY.
أوامر PowerShell
ssh-keygen -t ed25519 -C "[email protected]" -f $env:USERPROFILE\.ssh\id_ed25519
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519مسار الملف:
C:\Users\ \.ssh\id_ed25519C:\Users\ \.ssh\id_ed25519.pub
قم بتحويل ملفات PEM إلى PPK باستخدام برنامج PuTTYgen
الخطوات العامة:
افتح برنامج PuTTYgen.
ملف > تحميل المفتاح الخاص والملف
my-aws-key.pemتحميل (عرض جميع الملفات).احفظ المفتاح الخاص باسم
my-aws-key.ppkواستخدمه في برنامج PuTTY (الاتصال > SSH > المصادقة > ملف المفتاح الخاص).
استيراد المفاتيح العامة في AWS EC2 ولوحات التحكم السحابية الأخرى
وحدة تحكم AWS: EC2 > أزواج المفاتيح > استيراد زوج مفاتيح. اسم الملف ومحتواه .حانة يدخل.
عند إنشاء مثيل، يمكنك اختيار زوج مفاتيح موجود. غالبًا ما تحتوي مراكز البيانات الأخرى على خيار تحميل/استيراد مفتاح SSH في اللوحة.
مثال على استخدام cloud-init لإضافة مفتاح عام
#cloud-config
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... [email protected]أضف المفتاح إلى GitLab/GitHub واستخدمه في التكامل المستمر
لـ GitLab: إعدادات المستخدم > مفاتيح SSH ثم الصق المفتاح العام. انتقل إلى المشروع لنشر المفاتيح.
في بيئة التكامل المستمر/التسليم المستمر (CI/CD)، قم بتحميل المفتاح الخاص كمتغير محمي واستخدمه في المهمة عن طريق إنشاء ملف ذي وصول مقيد (chmod 600).
إعدادات الخادم والأمان بعد تثبيت المفتاح
الخطوة 1: تعيين الأذونات.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_ed25519ثم الإعدادات /etc/ssh/sshd_config تحقق وحدث:
رقم مصادقة كلمة المرور
PermitRootLogin no
مصادقة المفتاح العام نعم
أنت تستطيع السماح للمستخدمين تم ضبطه لتقييد المستخدمين.
لا تستخدم نظام أسماء النطاقات وقم بتغيير المنفذ إذا رغبت في ذلك.
sudo systemctl restart sshdجدار الحماية:
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw allow 2222/tcpاستخدم Fail2ban أو CrowdSec لمنع هجمات القوة الغاشمة:
sudo apt install fail2banبالنسبة للخوادم الحساسة، استخدم مضيفًا وسيطًا/مضيفًا وسيطًا لتقييد الوصول المباشر إلى الشبكات الخاصة.
نصائح عملية لتطبيقات مختلفة
للمتداولين (خادم افتراضي خاص للتداول)
اختر موقعًا: قرب خوادم الوسطاء أو البورصات لضمان أقل زمن استجابة. لدينا أكثر من 85 موقعًا حول العالم، مما يتيح لنا توفير موقع قريب من السوق المستهدف.
يوصى بتقييد استخدام SSH على عناوين IP الثابتة فقط أو عبر VPN:
sudo ufw allow from 203.0.113.5 to any port 22للاعبين (خوادم افتراضية خاصة للألعاب)
بالنسبة لخوادم الألعاب، استخدم مواقع ذات اتصال قوي وشبكة توصيل محتوى (CDN)/بروتوكول بوابة الحدود (BGP) مناسبة. استخدم مفاتيح SSH بدلاً من كلمات المرور، وخادم وسيط لتقليل مساحة الهجوم.
للذكاء الاصطناعي والعرض (سحابة وحدة معالجة الرسومات)
استخدم مفاتيح قوية (ed25519/RSA4096) للاتصال بخوادم وحدة معالجة الرسومات وقم بتعيين مستخدم ومفتاح منفصلين لكل مشروع.
rsync -avz -e "ssh -i ~/.ssh/id_ed25519 -p 2222" /local/path user@remote:/remote/pathللاستضافة واستضافة GitLab
استخدم مفتاحًا خاصًا بالخادم (مفتاح النشر) مع وصول محدود للوصول تلقائيًا إلى الخادم إلى المستودعات الخاصة.
إدارة المفاتيح، والتناوب، والمعايير
قم بتدوير المفاتيح بشكل دوري (على سبيل المثال كل 6 إلى 12 شهرًا).
قم بإزالة المفاتيح القديمة من
المفاتيح المعتمدةواحذف لوحة التحكم السحابية.استخدم عبارة المرور الخاصة بالمفتاح الخاص وقم بتخزينها في مدير كلمات المرور.
في المؤسسات، استخدم شهادات SSH وCA للإدارة المركزية (OpenSSH CA).
نصائح إضافية وحلول للمشاكل
عند مواجهة خطأ تم رفض الإذن (المفتاح العام) تأكد من وجود المفتاح العام في ~/.ssh/authorized_keys موجود والأذونات صحيحة.
sudo journalctl -u sshd -e
sudo tail -f /var/log/auth.logإذا كنت تستخدم ProxyJump أو مضيفًا وسيطًا، فسيكون ملف التكوين مفيدًا:
Host bastion
HostName bastion.example.com
User ubuntu
IdentityFile ~/.ssh/id_ed25519
Host internal-*
ProxyJump bastion
User deploy
IdentityFile ~/.ssh/id_deployمن ServerAliveInterval و ServerAliveCountMax استخدمه في إعدادات SSH لمنع انقطاعات الجلسات المفاجئة.
التوصيات الأمنية النهائية
ومن النقاط المهمة الأخرى تقييد الوصول إلى SSH لعناوين IP، واستخدام VPN أو شبكة خاصة، واستخدام خدمات مكافحة DDoS للخوادم الحساسة.
ملخص وقائمة مراجعة مقترحة
إنشاء المفتاح: ed25519 مع عبارة مرور
حماية الملف:
chmod 700 ~/.ssh && chmod 600 private_keyتفعيل SSH-Agent وإضافة المفاتيح
قم بتحميل المفتاح العام إلى لوحة تحكم AWS أو مركز البيانات أو استخدم cloud-init
تعطيل مصادقة كلمة المرور والسماح بتسجيل الدخول الجذر
جدار الحماية/UFW وFail2ban أو CrowdSec
استخدام نظام الحماية، وتقييد عناوين IP، وشبكة VPN للوصول الحساس
نسخ المفاتيح وتدويرها بانتظام









