العربية

نقل الملفات إلى خادم VPS لينكس باستخدام FileZilla (SFTP)

3 min
استضافة VPS/VDS

يعمل SFTP داخل اتصال SSH الحالي، فلا يحتاج إلى برنامج إضافي على الخادم ولا إلى منفذ جديد. على VPS Linux Infrawire هو أكثر الطرق أمانًا لرفع موقع أو جلب نسخ احتياطية عبر عميل رسومي مثل FileZilla. يغطي الدليل الدخول بكلمة مرور وبمفتاح، وصلاحيات الملفات، ومستخدمًا مقيّدًا بـ SFTP فقط.

📋 المتطلبات

  • خادم VPS لينكس (Ubuntu 24.04 أو Debian 12 أو AlmaLinux 9 أو Rocky 9) يعمل عليه SSH على المنفذ 22.
  • عنوان IP الخاص بالخادم وكلمة مرور root من منطقة العميل.
  • FileZilla Client مثبّت على حاسوبك (العميل Client وليس FileZilla Server).

1. اتصال سريع بكلمة مرور

للاختبار الأول استخدم شريط الاتصال السريع أعلى FileZilla:

  • المضيف: sftp://VPS_IP
  • اسم المستخدم: USER
  • كلمة المرور: كلمة مرورك
  • المنفذ: 22

اقبل مفتاح المضيف في المرة الأولى. تعرض اللوحة اليمنى شجرة ملفات الخادم. فضّل مستخدمًا عاديًا على root: النقرة الخاطئة ستسبب ضررًا أقل.

Bash
adduser USER usermod -aG sudo USER

على AlmaLinux أو Rocky استخدم useradd -m USER وpasswd USER وusermod -aG wheel USER.

2. تسجيل الدخول بمفتاح SSH

المفاتيح أكثر أمانًا من كلمات المرور ولا يمكن تخمينها بالقوة الغاشمة. على حاسوبك أنشئ زوج مفاتيح وانسخ الجزء العام إلى الخادم.

Bash
ssh-keygen -t ed25519 -C "filezilla" ssh-copy-id USER@VPS_IP

في FileZilla افتح Edit > Settings > Connection > SFTP > Add key file واختر مفتاحك الخاص (الملف الذي لا ينتهي بـ .pub). قد يعرض FileZilla تحويله إلى صيغته الخاصة؛ وافق. لا تشارك المفتاح الخاص أبدًا.

3. حفظ الاتصال في مدير المواقع

  1. افتح File > Site Manager وانقر New site.
  2. البروتوكول: SFTP - SSH File Transfer Protocol.
  3. المضيف: VPS_IP، المنفذ: 22.
  4. نوع تسجيل الدخول: Normal لكلمة المرور أو Key file للمفتاح.
  5. المستخدم: USER. في تبويب Advanced حدّد المجلد البعيد الافتراضي، مثل /var/www/example.com.
  6. انقر Connect. يُحفظ الموقع للمرة القادمة.

لا تحفظ كلمات المرور على جهاز لا تتحكم فيه.

4. ضبط المالك والصلاحيات لملفات الويب

غالبًا ما تنتمي الملفات المرفوعة إلى مستخدم خاطئ فتظهر أخطاء 403 أو 500. امنح مجلد الويب لمستخدمك واسمح لخادم الويب بقراءته.

Bash
mkdir -p /var/www/example.com chown -R USER:www-data /var/www/example.com find /var/www/example.com -type d -exec chmod 755 {} \; find /var/www/example.com -type f -exec chmod 644 {} \;

على AlmaLinux وRocky تكون مجموعة خادم الويب apache بدل www-data. يمكن ضبط المجلدات التي يجب أن يكتب فيها التطبيق (الرفع، الذاكرة المؤقتة) على 775 مع جعل مجموعة خادم الويب هي المجموعة المالكة. لا تستخدم chmod -R 777 أبدًا. في FileZilla يمكنك أيضًا النقر بزر الفأرة الأيمن على ملف واختيار File permissions.

5. اختياري: مستخدم SFTP فقط محبوس داخل مجلد

لمنح عميل وصولًا إلى مجلد واحد فقط دون صدفة shell استخدم chroot. يجب أن يكون مجلد chroot نفسه مملوكًا لـ root وألا يكون قابلًا للكتابة من أحد غيره، وإلا رفض sshd تسجيل الدخول.

Bash
groupadd sftpusers useradd -M -d /files -s /usr/sbin/nologin -G sftpusers CLIENT passwd CLIENT mkdir -p /var/sftp/CLIENT/files chown root:root /var/sftp/CLIENT chmod 755 /var/sftp/CLIENT chown CLIENT:CLIENT /var/sftp/CLIENT/files

أضف هذه الكتلة في نهاية /etc/ssh/sshd_config:

INI
1Match Group sftpusers 2 ChrootDirectory /var/sftp/%u 3 ForceCommand internal-sftp 4 AllowTcpForwarding no 5 X11Forwarding no

اختبر الصياغة قبل إعادة التحميل، وأبقِ جلسة SSH الحالية مفتوحة حتى تتأكد من نجاح دخول جديد.

Bash
sshd -t systemctl reload ssh

اسم الخدمة ssh على Ubuntu وDebian، وsshd على AlmaLinux وRocky. يصل المستخدم المقيّد إلى /files ولا يرى شيئًا آخر.

التحقق

اختبر من الطرفية قبل أن تلوم FileZilla:

Bash
sftp USER@VPS_IP sftp> pwd sftp> put test.txt sftp> ls -l

ثم ارفع ملفًا عبر FileZilla وتحقق من مالكه بالأمر ls -l /var/www/example.com.

استكشاف الأخطاء

  • رفض الاتصال أو انتهاء المهلة: تأكد من أن sshd يعمل (systemctl status ssh) وأن المنفذ مفتوح في الجدار الناري وأنك اخترت SFTP لا FTP.
  • Permission denied (publickey): المفتاح غير موجود في ~/.ssh/authorized_keys أو أن الصلاحيات خاطئة. أصلح بالأمرين chmod 700 ~/.ssh وchmod 600 ~/.ssh/authorized_keys.
  • قطع اتصال مستخدم chroot بعد الدخول مباشرة: مجلد chroot ليس مملوكًا لـ root أو أن المجموعة تستطيع الكتابة فيه. ابحث عن "bad ownership or modes for chroot directory" في journalctl -u ssh.
  • تعذر الرفع مع رفض الصلاحية على مجلد: المستخدم لا يملك الوجهة. أعد تنفيذ أمري chown وchmod من الخطوة 4.

✅ يمكنك الآن نقل الملفات بأمان إلى خادم VPS لينكس عبر FileZilla.

ابقَ على اطلاع بأحدث العروض والخصومات والعروض الترويجية الخاصة.

عرض العروض الترويجية

نستخدم ملفات تعريف الارتباط

نستخدم كوكيز تحليلية لتحسين تجربتك. لا نبيع البيانات لأطراف ثالثة. المزيد في سياسة الخصوصية.