شرح أمر SCP في Linux لنقل الملفات بأمان عبر SSH من الخادم البعيد إلى جهازك المحلي
ما هو أمر SCP في Linux؟
عند العمل على الحواسيب أو الخوادم، نحتاج كثيراً إلى نقل الملفات ومشاركتها بطريقة سريعة وآمنة، خصوصاً عندما تكون البيانات حساسة أو مخصصة لفريق محدد. في بيئة Linux تتوفر عدة أدوات لهذا الغرض، لكن أمر SCP يظل من أبسط الخيارات وأكثرها اعتماداً عندما يكون الأمان أولوية.
يرمز SCP إلى Secure Copy Protocol، وهو أداة سطر أوامر تتيح نسخ الملفات والمجلدات بين جهازين أو موقعين مختلفين بشكل آمن، وغالباً بين أنظمة Unix وLinux. وتعتمد هذه الأداة على SSH لتشفير الاتصال، ما يعني أن البيانات المنقولة تكون محمية أثناء النقل.
يمكن اعتبار SCP بديلاً آمناً للأمر cp عندما تحتاج إلى نسخ الملفات عبر الشبكة، وليس فقط داخل الجهاز نفسه.

لماذا يعد SCP مهماً لمسؤولي الأنظمة والمطورين؟
إذا كنت System Administrator أو مطوراً تتعامل مع الخوادم بشكل مستمر، فستحتاج غالباً إلى رفع ملفات إلى خادم بعيد أو تنزيل نسخ احتياطية وسجلات وملفات إعدادات إلى جهازك المحلي. هنا تظهر قيمة SCP لأنه يجمع بين:
- سهولة الاستخدام من الطرفية.
- أمان النقل بفضل SSH.
- القدرة على نقل ملفات فردية أو مجلدات كاملة.
- العمل بين أجهزة محلية وخوادم بعيدة أو حتى بين خادمين بعيدين.
صيغة أمر SCP الأساسية
مثل معظم أوامر الطرفية في Linux، يعتمد SCP على صيغة محددة يجب فهمها جيداً قبل الاستخدام:
scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2
شرح مكونات الصيغة
scp: يستدعي الأمر ويبدأ عملية النسخ الآمن.OPTIONS: خيارات إضافية تغير سلوك الأمر.src_host: المصدر الذي يوجد فيه الملف، وقد يكون جهازاً محلياً أو خادماً بعيداً.dest_host: الوجهة التي سيتم نسخ الملف إليها.
أشهر خيارات SCP
| الخيار | وظيفته |
|---|---|
-P |
تحديد المنفذ Port الخاص بالاتصال مع الخادم البعيد. |
-p |
الحفاظ على وقت التعديل والصلاحيات قدر الإمكان. |
-r |
نسخ المجلدات وما بداخلها بشكل تكراري recursively. |
-q |
تشغيل النسخ في الوضع الصامت دون إظهار تفاصيل التقدم. |
-C |
ضغط البيانات أثناء النقل لتقليل الاستهلاك وتسريع العملية في بعض الحالات. |
متى يمكنك استخدام أمر SCP؟
يمكن الاستفادة من SCP في عدة سيناريوهات عملية، من أبرزها:
- نسخ الملفات من جهاز محلي إلى خادم بعيد.
- نسخ الملفات من خادم بعيد إلى جهازك المحلي.
- نقل الملفات بين خادمين بعيدين مباشرة.
- نسخ عدة ملفات دفعة واحدة.
- نسخ مجلدات كاملة مع محتوياتها.
المتطلبات الأساسية قبل استخدام SCP
قبل تنفيذ أوامر SCP، تأكد من توفر العناصر التالية:
- تثبيت SSH على الجهاز المحلي والخادم البعيد.
- امتلاك بيانات الدخول الصحيحة، مثل اسم المستخدم وكلمة المرور أو مفاتيح SSH Keys.
- وجود صلاحية قراءة على الملف المصدر.
- وجود صلاحية كتابة على المسار الهدف.
نسخ ملف من الجهاز المحلي إلى خادم بعيد
يعد هذا السيناريو من أكثر الاستخدامات شيوعاً، مثل رفع ملف إعدادات أو سكربت أو صفحة ويب إلى الخادم.
إذا كان لديك ملف باسم test.txt وتريد نسخه إلى خادم بعيد، فاستخدم الأمر التالي:
scp test.txt userbravo@destination:/location2
في هذا المثال:
test.txt: الملف الموجود على جهازك المحلي.userbravo: اسم المستخدم على الخادم.destination: اسم الخادم أو عنوانه./location2: المسار الذي سيتم الحفظ فيه على الخادم.
نسخ عدة ملفات من نوع محدد إلى الخادم
إذا كنت داخل مجلد يحتوي على ملفات .php وتريد رفعها إلى المجلد الرئيسي للمستخدم على الخادم:
scp *.php userbravo@destination_host:~/
هنا:
*.php: يعني جميع الملفات ذات الامتداد.php.~/: يشير إلى Home Directory للمستخدم على الخادم.
نسخ ملف إلى الخادم مع تغيير اسمه واستخدام منفذ مخصص
إذا أردت نقل الملف test.txt إلى الخادم مع حفظه باسم جديد، وعبر منفذ مختلف عن المنفذ الافتراضي:
scp -P 8080 test.txt userbravo@destination_host:/user/home/test2.txt
سيتم هنا:
- الاتصال عبر المنفذ
8080. - نسخ الملف
test.txt. - حفظه على الخادم باسم
test2.txt.
نسخ الملفات من الخادم البعيد إلى الجهاز المحلي
هذا الاستخدام مهم جداً عندما تحتاج إلى تنزيل ملف سجل log أو نسخة احتياطية أو ملف إعدادات من الخادم إلى جهازك.
الصيغة العامة
scp <remote_username>@<IPorHost>:<PathToFile> <LocalFileLocation>
إذا كان لديك ملف باسم linuxcheatsheet على خادم عنوانه 192.168.1.100، والمستخدم هو lary، والملف موجود في المجلد الرئيسي للمستخدم، وتريد تنزيله إلى المجلد الحالي على جهازك المحلي، فاستخدم:
scp lary@192.168.1.100:linuxcheatsheet .
النقطة . في نهاية الأمر تعني أن الملف سيُحفظ في المجلد الحالي.
نسخ الملفات بين خادمين بعيدين
من الميزات العملية في SCP أنه لا يقتصر على النقل بين جهازك والخادم فقط، بل يمكنه أيضاً نقل الملفات بين خادمين بعيدين مباشرة.
إذا أردت نسخ ملف باسم test.txt من خادم إلى آخر، فيمكنك استخدام:
scp user1@host1.com:/files/test.txt user2@host2.com:/files/
يقوم هذا الأمر بنسخ الملف test.txt من المجلد /files/ على الخادم الأول إلى المجلد نفسه على الخادم الثاني.
نسخ عدة ملفات دفعة واحدة باستخدام SCP
يمكنك أيضاً إرسال أكثر من ملف في أمر واحد، وهو ما يوفر الوقت عند رفع ملفات متعددة إلى الخادم.
الصيغة العامة
scp file1 file2 file3 user@host:Destination
مثال عملي:
scp file1.txt file2.txt file3.txt file4.txt user1@host1.com:/home/user1/Desktop
سينسخ هذا الأمر الملفات الأربعة إلى مجلد Desktop الخاص بالمستخدم على الخادم.
نصائح مهمة عند استخدام SCP
- تأكد من امتلاك صلاحية القراءة للملف المصدر قبل بدء النسخ.
- تأكد من وجود صلاحية الكتابة في المسار الهدف.
- يعتمد SCP على SSH، لذلك ستحتاج إلى المصادقة عبر كلمة مرور أو مفاتيح SSH.
- إذا كان هناك ملف بالاسم نفسه في الوجهة، فقد يتم استبداله دون تحذير واضح.
- استخدم النقطتين الرأسيتين
:لتمييز المسارات البعيدة عن المحلية. - عند نسخ مجلد كامل، لا تنس استخدام الخيار
-r.
أفضل ممارسات لتحسين الأمان أثناء نقل الملفات
رغم أن SCP آمن بطبيعته بفضل SSH، إلا أن اتباع بعض الممارسات يمنحك مستوى أفضل من الحماية:
- استخدم SSH Keys بدلاً من كلمات المرور متى أمكن.
- غيّر المنفذ الافتراضي إذا كانت سياسة الخادم تتطلب ذلك.
- لا تنفذ أوامر النقل بصلاحيات مرتفعة إلا عند الحاجة الفعلية.
- تحقق دائماً من المسار الهدف لتجنب الكتابة فوق ملفات مهمة.
- استخدم الضغط عبر
-Cعند نقل ملفات كبيرة على شبكات بطيئة.
متى يكون SCP الخيار المناسب؟
يعد SCP مناسباً عندما تحتاج إلى:
- نقل سريع وآمن للملفات عبر الطرفية.
- تنفيذ المهام الإدارية اليومية على خوادم Linux.
- رفع ملفات المواقع أو تنزيل النسخ الاحتياطية.
- حل بسيط دون الحاجة إلى أدوات رسومية إضافية.
أما إذا كنت تحتاج إلى مزامنة متقدمة أو استئناف النقل عند الانقطاع، فقد يكون rsync خياراً أفضل في بعض الحالات.
الخلاصة التقنية
يُعد أمر SCP من الأدوات الأساسية التي ينبغي لأي مستخدم Linux أو مسؤول أنظمة إتقانها. فهو يوفر طريقة مباشرة وآمنة لنقل الملفات عبر SSH دون تعقيد، ويغطي معظم سيناريوهات النقل اليومية بكفاءة عالية. من الناحية العملية، يبقى SCP مثالياً للمهام السريعة والآمنة، خاصة عند التعامل مع الخوادم البعيدة وملفات الإعدادات والنسخ الاحتياطية.