SFTP وSCP: نقل الملفات بأمان
قارن بين SFTP وSCP وFTP غير الآمن، وافهم وسائل الحماية التشفيرية التي يوفرانها
SFTP وSCP: نقل الملفات بأمان درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
SFTP نظام فرعي لـ SSH وليس FTP
على الرغم من اسمه، لا علاقة لـ SFTP (SSH File Transfer Protocol) بـ FTP. فهو بروتوكول ثنائي صُمم للعمل كنظام فرعي لـ SSH-2، أي إنه يعمل عبر اتصال SSH موجود مسبقًا تمت مصادقته وتشفيره. ويستدعي عميل SSH نظام SFTP الفرعي على الخادم باستخدام الأمر ssh user@host -s sftp. وترث جميع عمليات SFTP ضمانات الأمان التي يوفرها نقل SSH الأساسي.
إمكانات SFTP
يوفر SFTP مجموعة غنية من عمليات الملفات عبر القناة المشفرة: عرض محتويات المجلدات، ورفع الملفات، وتنزيلها، وحذفها وإعادة تسميتها، وإنشاء المجلدات وإزالتها، وقراءة أذونات الملفات والطوابع الزمنية وضبطها، واستئناف عمليات النقل المتوقفة. وتجعل هذه الإمكانات من SFTP واجهة متكاملة لنظام ملفات بعيد، لا مجرد أداة لنقل الملفات.
SCP: نسخ ملفات أبسط عبر SSH
يُعد SCP (Secure Copy Protocol) بروتوكولًا أقدم وأبسط لنقل الملفات عبر SSH. وينسخ الأمر scp file.txt user@host:/path ملفًا بأمان. ويُعد SCP أسهل استخدامًا من SFTP لعمليات النقل الفردية، لكنه لا يدعم سوى مجموعة فرعية من العمليات: النسخ من المحلي إلى البعيد، أو من البعيد إلى المحلي، أو من البعيد إلى البعيد. ولا يتضمن وضعًا تفاعليًا، كما أن دعمه لاستئناف عمليات النقل المتوقفة محدود.
ثغرات بروتوكول SCP
احتوى بروتوكول SCP الأصلي على ثغرة مهمة؛ إذ كان بإمكان خادم خبيث إرسال ملفات عشوائية إلى العميل بغض النظر عما طلبه العميل. وكان يستطيع المهاجم الذي يسيطر على الخادم الكتابة فوق ملفات خارج مجلد الوجهة المقصود. وقد أوقف OpenSSH العمل ببروتوكول SCP القديم لصالح scp المستند إلى SFTP في OpenSSH 9.0 (2022). وتستخدم أوامر scp الحديثة بروتوكول SFTP في الخلفية، مما يلغي هذا النوع من الهجمات مع الحفاظ على صياغة الأوامر المألوفة.
FTP مقابل FTPS مقابل SFTP
غالبًا ما يحدث خلط بين ثلاثة خيارات آمنة لنقل الملفات. فـ FTP (المنفذ 21) غير مشفر، ولا ينبغي استخدامه. ويضيف FTPS (FTP عبر SSL) بروتوكول TLS إلى FTP على المنفذ 990 (ضمني) أو المنفذ 21 (صريح باستخدام AUTH TLS)، مما يتطلب بنية FTP الأساسية إلى جانب إدارة الشهادات. أما SFTP فهو بروتوكول منفصل تمامًا يعمل عبر SSH (المنفذ 22)، ويعيد استخدام مصادقة SSH الحالية وإدارة مفاتيحه. ويكون SFTP عمومًا أسهل في الإعداد والصيانة من FTPS.
rsync عبر SSH للمزامنة الفعالة
أداة rsync هي أداة لمزامنة الملفات، تنقل الأجزاء التي تغيّرت من الملفات فقط، ما يجعلها أكثر كفاءة بكثير من SCP عند إجراء النسخ الاحتياطية التزايدية. يؤدي تشغيل rsync مع الخيار -e ssh إلى تمرير جميع البيانات عبر نفق SSH. يعمل الأمر rsync -avz -e ssh user@host:/remote/ /local/ على مزامنة دليل بعيد مع دليل محلي، ولا ينقل سوى الفروقات. ويُعد استخدام rsync عبر SSH الأسلوب القياسي للنسخ الاحتياطي للخوادم وسير عمل النشر.
التعامل مع عمليات نقل الملفات الكبيرة
يدعم SFTP عمليات النقل القابلة للاستئناف: فإذا انقطع الاتصال أثناء رفع ملف كبير، يمكن استئناف النقل من آخر بايت جرى تأكيد استلامه، بدلًا من إعادة بدئه من الصفر. يدعم عميل sftp من OpenSSH الأمر reput لاستئناف عمليات الرفع، والأمر reget لاستئناف عمليات التنزيل. أما عمليات النقل الكبيرة جدًا، مثل الملفات التي يبلغ حجمها عدة غيغابايت، فتوفّر لها أدوات مثل lftp إدارة أكثر متانة، مع إعادة المحاولة تلقائيًا وتقييد عرض النطاق الترددي.
بيئات Chroot المعزولة في SFTP للوصول المقيّد
يمكن لخادم OpenSSH تقييد مستخدمي SFTP بشجرة أدلة محددة باستخدام بيئة chroot معزولة. تؤدي إضافة التوجيه Match User مع ChrootDirectory وForceCommand internal-sftp إلى إعداد SSH إلى إنشاء بيئة SFTP معزولة. يستطيع المستخدم رفع الملفات وتنزيلها داخل الدليل المخصص له، لكنه لا يستطيع الوصول إلى بقية نظام الملفات أو تنفيذ أوامر الصدفة. ويُستخدم هذا على نطاق واسع لإدارة ملفات استضافة الويب وبوابات رفع الملفات للعملاء.
تهيئة خادم SFTP
يتطلب تمكين SFTP على خادم OpenSSH إضافة Subsystem sftp /usr/lib/openssh/sftp-server إلى sshd_config. ويتولى الملف التنفيذي sftp-server معالجة جميع عمليات بروتوكول SFTP. في تهيئات chroot، يجب أن يكون المالك للمجلد ChrootDirectory هو root، وألا يكون قابلًا للكتابة من أي مستخدم آخر، إذ يُعد ذلك مصدرًا شائعًا لأخطاء التهيئة. ويؤدي اختبار التهيئة باستخدام sshd -t إلى التحقق من الصياغة قبل إعادة تحميل الخدمة.
SFTP في سير عمل النسخ الاحتياطي المؤتمت
يندمج SFTP جيدًا مع مسارات النسخ الاحتياطي المؤتمتة. ويستخدم خادم النسخ الاحتياطي مصادقة المفتاح العام للاتصال دون كلمات مرور، ما يتيح عمليات نقل مجدولة بواسطة cron دون تدخل بشري. ويُقيَّد مستخدم النسخ الاحتياطي باستخدام chroot بدليل الرفع، مما يحد من الضرر في حال اختراق خادم النسخ الاحتياطي. ويوفر رصد سجلات حالات فشل اتصالات SFTP وأخطاء النقل إنذارًا مبكرًا بمشكلات النسخ الاحتياطي، قبل أن تؤثر في القدرة على الاستعادة.
أدوات عميل SFTP
إلى جانب عميل sftp لسطر الأوامر، تدعم الأدوات الرسومية مثل FileZilla وCyberduck وWinSCP بروتوكول SFTP من خلال واجهات السحب والإفلات، وإدارة الإشارات المرجعية، وعروض الأدلة جنبًا إلى جنب. وتحظى هذه الأدوات بشعبية لدى المطورين والمسؤولين الذين يفضلون سير العمل عبر واجهة رسومية. وتستخدم جميعها بروتوكول SFTP الأساسي نفسه ومصادقة SSH نفسها، بما في ذلك دعم ملفات مفاتيح SSH ووكيل SSH الخاص بالنظام.
SFTP مقابل SCP
ما الثغرة الأمنية الرئيسية في بروتوكول SCP القديم التي دفعت OpenSSH إلى استبداله بتطبيق قائم على SFTP؟
أهم النقاط حول SFTP وSCP
SFTP هو نظام فرعي في SSH، ولا يرتبط بـ FTP. وهو يوفر عمليات كاملة على نظام الملفات البعيد عبر SSH المشفّر. أما SCP فهو أبسط، لكن البروتوكول القديم كان يتضمن ثغرة اجتياز لمسارات الخادم، وقد أُصلحت في OpenSSH 9.0 من خلال التحويل إلى استخدام SFTP في الخلفية. يضيف FTPS طبقة TLS إلى FTP، بينما يعتمد SFTP بالكامل على SSH. ويوفر rsync عبر SSH مزامنة تزايدية فعّالة. وتقيّد بيئات chroot المعزولة مستخدمي SFTP بالأدلة المخصصة لهم.
الأسئلة الشائعة
هل درس «SFTP وSCP: نقل الملفات بأمان» مجاني؟
نعم — نص درس «SFTP وSCP: نقل الملفات بأمان» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «SFTP وSCP: نقل الملفات بأمان»؟
قارن بين SFTP وSCP وFTP غير الآمن، وافهم وسائل الحماية التشفيرية التي يوفرانها تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «SFTP وSCP: نقل الملفات بأمان»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما الذي يجعل البروتوكول آمنًا؟
- SSH: تأمين الوصول عن بُعد
- SFTP وSCP: نقل الملفات بأمان
- DNSSEC: مصادقة استجابات DNS