شرح خطوة بخطوة — من الصفر حتى الاتصال الآمن
SSH (Secure Shell) هو بروتوكول شبكي مشفّر يسمح لك بالتحكم عن بُعد بجهاز آخر عبر سطر الأوامر. يستخدم SSH_PORT الافتراضي 22.
ssh client22 مفتوح في جدار الحماية (Firewall)sudo apt update && sudo apt upgrade -y sudo apt install openssh-server -y
sudo systemctl status sshd sudo systemctl enable sshd # تشغيل تلقائي مع البوت
sudo ufw allow 22/tcp sudo ufw enable sudo ufw status
ip addr show # أو hostname -I
192.168.1.100) — ستحتاجه للاتصال.ssh username@192.168.1.100
إذا كان البورت مختلفاً:
ssh -p 2222 username@192.168.1.100
PowerShell أو CMD أو Windows Terminal — الـ SSH client موجود افتراضياً من Windows 10 build 1809 فما فوق.الخطوة ١: توليد مفتاح على جهازك المحلي:
ssh-keygen -t ed25519 -C "my-vm-key" # أو ssh-keygen -t rsa -b 4096 -C "my-vm-key"
الخطوة ٢: نسخ المفتاح العام إلى الـ VM:
ssh-copy-id username@192.168.1.100 # أو يدوياً: cat ~/.ssh/id_ed25519.pub | ssh username@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh"
الخطوة ٣: اتصل الآن — لن يطلب الباسوورد:
ssh username@192.168.1.100
/etc/ssh/sshd_configافتح الملف بالتعديل:
sudo nano /etc/ssh/sshd_config
| الخيار | القيمة | الشرح |
|---|---|---|
Port | 2222 | تغيير البورت الافتراضي (يقلل هجمات البوتات) |
PermitRootLogin | no | منع تسجيل الدخول كمستخدم root |
PasswordAuthentication | no | إيقاف الباسوورد — استخدام المفاتيح فقط |
PubkeyAuthentication | yes | تفعيل المصادقة بالمفتاح العام |
AllowUsers | username | تحديد المستخدمين المسموح لهم فقط |
MaxAuthTries | 3 | عدد محاولات المصادقة القصوى |
بعد التعديل، أعد تشغيل الخدمة:
sudo systemctl restart sshd
~/.ssh/configإنشاء ملف إعدادات على جهازك المحلي لتجنب كتابة IP والمستخدم كل مرة:
Host my-vm
HostName 192.168.1.100
Port 22
User username
IdentityFile ~/.ssh/id_ed25519
بعد الحفظ، اتصل ببساطة:
ssh my-vm
Connection refusedsudo systemctl status sshdPermission denied (publickey)~/.ssh/authorized_keys على الـ VMchmod 600 ~/.ssh/authorized_keys و chmod 700 ~/.sshssh -i ~/.ssh/id_ed25519 user@IPConnection timed outفي إعدادات الشبكة للـ VM:
Host: 2222 → Guest: 22اتصل بـ:
ssh -p 2222 user@127.0.0.1
192.168.1.x)ssh user@192.168.1.50192.168.56.x# ---- على الـ VM ---- sudo apt install openssh-server -y sudo systemctl enable --now sshd sudo ufw allow 22/tcp ip addr # اعرف الـ IP # ---- على جهازك المحلي ---- ssh-keygen -t ed25519 # توليد مفتاح ssh-copy-id user@IP # نسخ المفتاح ssh user@IP # اتصل # ---- تأمين SSH ---- sudo nano /etc/ssh/sshd_config # PermitRootLogin no # PasswordAuthentication no sudo systemctl restart sshd # ---- اتصال سريع ---- # بعد إعداد ~/.ssh/config: ssh my-vm