هل سبق لك أن أردت نقل بعض الملفات عبر شبكة من أجهزة الكمبيوتر وواجهت تحديات أمنية؟ حسنًا، لا يمكنك ببساطة رمي ملفاتك على الشبكة والرغبة في أن تظل آمنة ومأمونة، مثل The Red Riding Hood! أنت بحاجة إلى تدابير أمنية. يجب عليك استخدام بروتوكول نقل الملفات الذي يضمن حماية بياناتك ضد الوصول غير المصرح به، واستنشاق الشبكة، وانتهاكات البيانات، وأنواع أخرى من التهديدات.
يعد بروتوكول النسخ الآمن (SCP) أحد بروتوكولات شبكة نقل الملفات القوية التي تنقل الملفات بين أجهزة مختلفة على الشبكة. في منشور المدونة هذا، سنصبح أكثر دراية بهذا البروتوكول ونستكشف إمكانات استخدام SCP من الأجهزة البعيدة إلى الأجهزة المحلية.
كيف يعمل SCP؟
يستخدم SCP SSH (Secure Shell) لنقل ملفاتك. ولكن ماذا يعني هذا حتى؟ SSH هو بروتوكول شبكة للوصول الآمن عن بعد إلى الخوادم. وهي مجهزة بطرق المصادقة والتشفير والتحقق من سلامة ملفات البيانات المرسلة. يعتمد SCP على ميزات الأمان وطرق التشفير التي يوفرها SSH لنقل الملفات عبر الشبكة بشكل آمن. بهذه الطريقة، يمكنك استخدام SCP من الخوادم البعيدة إلى الخوادم المحلية للاتصال الآمن ونقل الملفات والتأكد من صحة بياناتك وسريتها.
استخدام SCP لنقل الملفات؛ لماذا وكيف؟
يعد استخدام SCP من بعيد إلى محلي ومن SCP محليًا إلى بعيد طريقة فعالة ومرنة لنقل الملفات. يقدم SCP بعض المزايا الرئيسية لنقل الملفات. على سبيل المثال، يوفر SCP إجراءات أمنية أكثر قوة من طرق نقل الملفات الأخرى مثل FTP. هناك جانب آخر يختلف فيه SCP عن البروتوكولات الأخرى وهو السرعة. عادةً ما يكون SCP أسرع بكثير من البروتوكولات الأخرى مثل SFTP، وهو أداة رائعة لنقل الملفات بين أجهزة Linux.
يمكنك نقل الملفات باستخدام SCP:
- من جهاز محلي إلى جهاز بعيد
- من جهاز بعيد إلى جهاز محلي
- من جهاز بعيد إلى جهاز بعيد آخر.
الآن، دعنا ننتقل إلى الاستخدام الفعلي لبناء جملة Linux SCP لنقل الملفات. أول ما عليك فعله هو إعداد SSH على كلا الجهازين. ومع ذلك، من المهم ملاحظة أن SSH يتم تثبيته عادةً على جميع أجهزة Linux. لذا، إذا كان هذا هو الحال بالنسبة لك، يمكنك تخطي هذه الخطوات.
1. إعداد SSH
قم بتشغيل الأمر التالي لتثبيت SSH:
sudo apt install openssh-client
2. توليد مفاتيح SSH
يجب على جهاز العميل بعد ذلك إنشاء اتصال SSH. يحتاج الاتصال الآمن بين أجهزة العميل والخادم إلى إنشاء مفتاح خاص ومفتاح عام. يقوم هذا الأمر بإنشاء زوج مفاتيح SSH لك:
ssh-keygen
أثناء تشغيل هذا الأمر، ربما سيُطلب منك تقديم اسم لزوج المفاتيح وعبارة المرور (هذا اختياري). وبعد ذلك، عند إنشاء زوج المفاتيح، يجب عليك نسخ المفتاح العام إلى جهاز الخادم.
الآن، دعونا نلقي نظرة على الشكل العام لأمر SCP:
scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
- [خيارات] > يمكن استبدال هذه الشريحة الأولى بخيارات مختلفة لأمر SCP والتي سنصل إليها لاحقًا.
- [اسم المستخدم @ IP المصدر] > يجب استبدال هذه الشريحة باسم المستخدم وعنوان IP الخاص بالجهاز المحلي. على سبيل المثال: [email protected]
- [اسم الدليل/الملف] > يجب استبدال هذه القوس بموقع الملف الذي تريد إرساله.
- [اسم المستخدم الوجهة @ IP] > يجب استبدال هذه الشريحة باسم المستخدم وعنوان IP الخاص بجهاز الاستقبال.
- [الدليل] > استبدل هذا القسم بالموقع المطلوب لملفك على الجهاز البعيد.
إذن، الآن أنت تعرف كيف يبدو الأمر العام. دعونا نلقي نظرة على جميع الخيارات المفيدة لأمر SCP:
| خيار | حالة الاستخدام |
| -C |
باستخدام هذا الخيار، يقوم SCP بضغط ملفاتك عند نقلها.
|
| -ج <التشفير> |
يمكنك استخدام هذا الخيار لإخبار SCP باستخدام تشفير محدد. على سبيل المثال، scp -c <aes128-ctr>.
|
| -v |
يمنحك هذا الخيار تدفقًا للعملية خطوة بخطوة.
|
| -l <الحد الأقصى بالكيلوبايت> |
يتيح لك هذا الخيار تعيين حد للحد الأقصى لعرض النطاق الترددي. على سبيل المثال، يضبط المثال التالي استخدام النطاق الترددي على 100 كيلو بايت في الثانية: scp -l 100
|
| -P |
باستخدام هذا الخيار، يمكنك تغيير منفذ ssh الخاص بالخادم البعيد الذي تريد الاتصال به. يستخدم SCP المنفذ 22 بشكل افتراضي.
|
| -S <اسم البرنامج> |
يمكنك استخدام هذا الخيار لاختيار برنامج للاتصال.
|
| -r |
انسخ ملفًا أو دليلًا كاملاً بشكل متكرر.
|
نقل الملفات مع SCP
إذًا، تتذكر أن لدينا ثلاثة أنواع من التحويلات مع SCP، أليس كذلك؟ الآن، نريد استكشاف كل نوع من أنواع النقل بشكل مستقل. ولكن دعونا نحدد المهمة قبل البدء. لدي صورة القطة هذه على سطح مكتب جهاز الكمبيوتر الذي يعمل بنظام التشغيل Linux، وفي الخطوة الأولى، أريد نقلها إلى خادم Linux البعيد. ثم سأقوم بنقله مرة أخرى إلى جهاز الكمبيوتر المحلي الخاص بي. وأخيرًا، سيتنقل القط المحظوظ بين آلتين بعيدتين.

SCP من المحلي إلى البعيد
سيؤدي استخدام هذا الأمر إلى نقل ملفنا من جهاز كمبيوتر محلي إلى خادم بعيد:
scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
لاستخدام أمر scp مع كلمة المرور، يجب عليك إدخال كلمة المرور الخاصة بالخادم البعيد. ثم انتهيت.

SCP من البعيد إلى المحلي
لعكس هذه العملية، لا تحتاج إلى الوصول إلى المحطة الطرفية لخادمك البعيد. على محطة الكمبيوتر المحلي لديك، اكتب هذا الأمر:
scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]
كما ترون، قمنا للتو بعكس جزأين من هذا الأمر.

SCP بين جهازين بعيدين
الآن، لننقل القطة بين جهازين بعيدين. تتطلب هذه الخطوة كلمة المرور لكلا الجهازين البعيدين، لذا تأكد من حصولك عليها. استخدم هذا الأمر لنقل ملف بين جهازي كمبيوتر بعيدين:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

أوامر SCP الشائعة الأخرى
أوامر SCP الأكثر شيوعًا هي scp من بعيد إلى محلي، وscp من محلي إلى بعيد، وSCP بين مضيفين بعيدين. لكن دعونا لا نتوقف عند هذا الحد ونستكشف بعض الأمثلة المفيدة الأخرى لنظام التشغيل Linux scp.
1. نسخ الدليل بأكمله بشكل متكرر
تخيل أنك تريد نقل دليل كامل بكل الملفات التي يحتوي عليها. سيكون نقل هذه الملفات واحدًا تلو الآخر يستغرق وقتًا طويلاً حقًا. بدلًا من ذلك، يمكنك استخدام الأمر scp multiple files لنسخ الدليل بشكل متكرر:
scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]
يمكن أن يكون هذا مفيدًا للعديد من السيناريوهات:
- نشر الكود: عندما تقوم بنشر تعليمات برمجية أو تطبيقات ويب، قد تحتاج إلى نقل دليل كامل بكل مكوناته مثل الملفات والبرامج النصية.
- النسخ الاحتياطي والمزامنة: إذا كنت تريد الحصول على نسخة احتياطية من الدليل بأكمله أو إذا كنت تريد مزامنة دليلين على الجهاز المحلي والخادم البعيد، فأنت بحاجة إلى نسخ كل شيء بشكل متكرر.
- ترحيل النظام: تتمثل إحدى المهام الحاسمة في ترحيل النظام في نسخ ونقل كل جزء من المعلومات الحيوية. سيؤدي استخدام أمر SCP مع الخيار -r إلى التأكد من عدم تفويت أي شيء أثناء عملية النقل.
2. الحد من استخدام النطاق الترددي
إذا كنت تريد التحكم في معدل نقل بياناتك، فيمكنك استخدام الأمر التالي:
scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
لماذا تفعل ذلك رغم ذلك؟
في هذين السيناريوهين، يمكنك استخدام بناء جملة Linux scp لتعيين حد لعرض النطاق الترددي:
- ازدحام الشبكة: إذا كانت شبكتك مزدحمة للغاية، فإن تحديد النطاق الترددي باستخدام scp يمكن أن يساعد في توزيع موارد الشبكة. يضمن تحديد النطاق الترددي باستخدام SCP تشغيل المهام الأخرى المتعلقة بالشبكة دون أي مشاكل. وهذا مهم أيضًا عند نقل الملفات عبر شبكة مشتركة، ويمكن أن تعيق عمليتك أنشطة الشبكة للمستخدمين الآخرين.
- عمليات النقل في الخلفية: أثناء عمليات نقل SCP في الخلفية مثل النسخ الاحتياطية التلقائية أو عمليات المزامنة، هناك احتمال أن تلتهم هذه المهام موارد شبكتك. في هذه الحالة، يمكنك تحديد النطاق الترددي لعمليات النقل هذه لإدارة الموارد بشكل أفضل.
3. الحصول على سجل مفصل
سيمنحك استخدام الخيار -v مع SCP سجلاً مفصلاً للمعلومات الإضافية حول عملية النقل. يمكنك استخدام الأمر أدناه للحصول على تعليقات ومعلومات مفصلة:
scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
لهذا السبب عليك أن تتذكر هذا الأمر وتستخدمه:
- استكشاف الأخطاء وإصلاحها: يوضح لك استخدام هذا الخيار مدى تقدم عملية النقل. يمكنك رؤية معلومات مثل حجم الملف ونسبة الاكتمال. كما أنه يعطيك رسائل الخطأ والتحذيرات. يتيح لك الجمع بين هذه البيانات مراقبة عملية النقل واستكشاف أخطائها وإصلاحها عند الحاجة.
4. تحديد منفذ SSH
يتيح لك استخدام بناء جملة Linux scp مع خيار -P القيام بذلك تغيير منفذ SSH. إليك الأمر الذي يتيح لك القيام بذلك:
scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
يمكن أن يكون هذا مفيدًا لـ:
- تكوين جدار الحماية: إذا كان منفذ SSH الافتراضي مقيدًا أو إذا كنت تريد إخفاء خدمة SSH من التهديدات المحتملة، فيمكنك تغيير منفذ SSH.
هل هناك أي بدائل لSCP؟
SCP سريع وآمن، ومن خلال معرفة بناء جملة Linux scp الصحيح وبعض المعرفة باستكشاف الأخطاء وإصلاحها، يمكن أن يكون الأداة الوحيدة التي تحتاجها. ومع ذلك، ليس هناك ضرر في مراجعة بدائلها.
1. رسينك
rsync هي أداة متعددة الاستخدامات لنقل الملفات تتمتع بقدرات مزامنة متقدمة وعمليات نقل تزايدية ونسخ عن بعد ومحلي. يمكنه أيضًا تقليل استخدام النطاق الترددي عن طريق نقل الاختلافات بين ملفات المصدر والوجهة فقط. ميزة أخرى رائعة لاستخدام rsync هي أنه يمكنه التقاط عمليات نقل الملفات المتقطعة من حيث توقفت ومتابعة العملية.
إيجابيات رسينك
- مزامنة فعالة للملفات والدلائل.
- يدعم خوارزمية نقل دلتا، مما يقلل من نقل البيانات.
- يمكن استئناف عمليات النقل المتقطعة.
سلبيات رسينك
- يتطلب تثبيت rsync على كلا النظامين المصدر والوجهة.
- يتطلب المزيد من خيارات الإعداد والأوامر مقارنة بـ scp.
2. SFTP (بروتوكول نقل الملفات SSH)
يوفر SFTP طريقة آمنة لنقل الملفات عبر SSH. وهو يقدم وظائف مشابهة لـ FTP ولكنه يعمل عبر اتصال SSH مشفر، تمامًا مثل SCP. ولكن في بعض المناطق، تفوق مزايا SFTP مزايا SCP. لا يمكن لـ SCP إنشاء قوائم الدليل، أو إنشاء الدلائل أو حذفها، وما إلى ذلك. ومع ذلك، يمكن لـ SFTP تنفيذ كل هذه المهام.
إيجابيات بروتوكول النقل الآمن (SFTP).
- نقل الملفات بشكل آمن مع التشفير.
- قدرات إدارة الملفات عن بعد.
- توافر واسع النطاق على معظم أنظمة Linux وUnix.
سلبيات بروتوكول نقل الملفات (SFTP).
- يختلف بناء جملة الأوامر واستخدامه عن بروتوكول نقل الملفات (FTP) التقليدي.
- قد يكون لها دعم محدود على بعض الأنظمة أو الأجهزة المدمجة.
3. FTP (بروتوكول نقل الملفات)
FTP هو بروتوكول قياسي يستخدم على نطاق واسع لنقل الملفات. إنه يعمل في نموذج خادم العميل ويوفر وظائف نقل الملفات الأساسية.
إيجابيات بروتوكول نقل الملفات
- دعم واسع عبر منصات مختلفة.
- تتوفر برامج سطر الأوامر والعملاء الرسومية المألوفة.
سلبيات بروتوكول نقل الملفات
- يفتقر إلى التشفير/أقل أمانًا مقارنة بـ scp وsftp.
- قد يتطلب الأمر تكوينًا إضافيًا لجدار الحماية لإنشاء اتصالات.
- مصادقة النص العادي.
بشكل عام، في حين أن scp هو خيار بسيط وموثوق لنقل الملفات بشكل آمن عبر SSH، فإن البدائل مثل rsync وsftp وFTP قد توفر ميزات ومرونة إضافية اعتمادًا على متطلبات محددة.
فكيف تقرر أي واحد تختار؟ يجب عليك مراعاة عوامل مثل الأمان واحتياجات المزامنة وسهولة الاستخدام والتوافق مع أنظمتك وبروتوكولاتك. على سبيل المثال، إذا كان الأمان وسرية البيانات هما العاملان الأكثر أهمية في نقل الملفات، فإن FTP ليس خيارًا جيدًا.
خاتمة
SCP هي أداة سريعة وآمنة لنقل الملفات بين أجهزة الكمبيوتر. يمكنك استخدام scp من بعيد إلى محلي، ومن محلي إلى بعيد، وحتى بين نظامين بعيدين لنقل الملفات. وعلى الرغم من وجود بدائل لـ SCP تقوم بعمل مناسب، مثل rsync، إلا أنها تتفوق عليها بعدة طرق، خاصة من حيث الأمان والسرعة. في منشور المدونة هذا، تحدثنا عن SCP وحالات استخدامه وبدائله وقدمنا أيضًا ورقة غش لسهولة الوصول إلى بناء الجملة المستخدم بشكل متكرر.
التعليمات
هل هناك أي مخاوف أمنية يجب أن أكون على دراية بها عند استخدام SCP من Remote إلى Local؟
SCP هي أداة آمنة إلى حد ما، ولا داعي للقلق بشأن التهديدات الأمنية أثناء استخدامها. ومع ذلك، يوصى دائمًا باتخاذ أي إجراءات أمنية إضافية ممكنة.
ما هي بعض الأخطاء الشائعة التي تحدث عند استخدام SCP عن بعد إلى محلي؟
عند استخدام SCP لنقل الملفات من خادم بعيد إلى جهاز محلي، قد يواجه المستخدمون العديد من الأخطاء الشائعة. فيما يلي اثنين من الأخطاء الأكثر شيوعًا عند استخدام SCP عن بعد إلى محلي:
- لا يوجد مثل هذا الملف أو الدليل: يحدث هذا الخطأ عندما لا تحدد رقم المنفذ الصحيح، أو تكون إعدادات أذونات الملف غير صحيحة، أو عندما تكون معلومات تسجيل الدخول غير صحيحة.
- فشل التحقق من مفتاح المضيف: تظهر رسالة الخطأ هذه عندما يتغير مفتاح المضيف بسبب ترقيات الخادم. يوضح مفتاح المضيف أنك اتصلت بهذا الخادم من قبل، وعندما يفشل التحقق من مفتاح المضيف، فهذا يشير إلى أن هوية الخادم قد تغيرت. يحاول هذا الخطأ حمايتك من الاتصال بخادم احتيالي.
كيف يمكنني استخدام SCP لنقل الملفات بين الأنظمة البعيدة؟
من أجل نقل الملفات بنجاح بين الأنظمة التي تستخدم SCP، يجب أن يكون الوصول إلى كلا الجهازين عبر SSH. تحتاج أيضًا إلى عنوان IP وكلمة المرور للأجهزة البعيدة. الباقي يستخدم فقط أمر SCP الصحيح:
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]
بعد كتابة هذا الأمر، سيُطلب منك تقديم كلمة المرور للخوادم. وبعد ذلك سيتم نقل ملفك.