كيفية نقل الملفات بأمان في Linux باستخدام SCP

عند نقل الملفات إلى خادم Linux بعيد ، لديك بعض الخيارات. تتمثل إحدى أفضل الطرق في استخدام برنامج يسمى Secure Copy ، أو SCP ، يتم تشغيله عبر بروتوكول SSH لنقل الملفات بسرعة عبر شبكتك إلى نظام بعيد. يوضح لك هذا البرنامج التعليمي كيفية نقل الملفات بأمان في Linux باستخدام SCP.

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

تكوين SSH

على خادمك البعيد ، ستحتاج إلى تثبيت خادم SSH. الأكثر شيوعًا على Linux هو خادم OpenSSH. لتثبيته ، قم بتشغيل أحد الأوامر التالية:

# Debian/Ubuntu-based server
sudo apt install ssh
 
# Fedora
sudo dnf install openssh

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

اعتمادًا على التوزيعة الخاصة بك ، قد تحتاج إلى السماح لـ SSH من خلال بعض جدران حماية البرامج. في Ubuntu ، هذه المشكلة غير موجودة ، ولكن في Fedora ، سيتعين عليك أيضًا تشغيل الأوامر التالية:

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

الاتصال بنظامك عبر SSH

قبل أن تتمكن من الاتصال عبر SSH ، تحتاج إلى معرفة عنوان IP للخادم البعيد. على الخوادم الرسومية ، يظهر عنوان IP في تطبيق الشبكة الصغير في إعدادات النظام. في معظم الخوادم ، يجب عليك استخدام الأمر ip في الجهاز.

ip addr

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

في الإخراج ، ابحث عن السطر الذي يبدأ بـ inet ضمن ethX أو enpXsy ، اعتمادًا على طريقة اتصال واجهة الشبكة الخاصة بك بالنظام. في حالتي ، إنه 192.168.68.108.

لاختبار اتصال SSH ، انتقل إلى جهاز Linux مختلف واكتب:

قم بتغيير “user” إلى اسم المستخدم الفعلي في الخادم.

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

أدخل كلمة مرور هذا الحساب ، وأنت تعمل. إذا تلقيت سؤالاً حول “لا يمكن إثبات أصالة المضيف” ، فما عليك سوى الإجابة بـ “نعم”. إنه فحص أمني مصمم للتأكد من أنك متصل بخادمك الفعلي وليس محتالاً. يجب أن ترى نفس المطالبة التي تظهر على نظام العميل الذي تراه عند تسجيل الدخول مباشرة إلى الخادم ، مما يعني أن اتصالك كان ناجحًا. يجب عليك أيضًا تكوين اتصالات SSH للحصول على أقصى درجات الأمان ، أو حتى إعداد مصادقة ثنائية ، قبل المتابعة إلى الخطوة التالية.

استخدام SCP لنقل الملفات

الآن بعد أن اختبرت اتصال SSH ، ابدأ في نسخ الملفات بين الجهازين. يتم تحقيق النسخ الآمن باستخدام الأمر scp. التنسيق الأساسي لأمر scp هو:

scp /PATH/TO/FILE USER@IP-ADDRESS:PATH/TO/DESIRED/DESTINATION

على سبيل المثال ، لنسخ ملف “backup.tar.gz” من الجهاز المحلي إلى مجلد “backup.tar.gz” في الدليل الرئيسي للمستخدم “ramces” على الخادم البعيد بعنوان IP 192.168.68.165 ، استخدم:

scp backup.tar.gz [email protected]:~/backups/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

على غرار ما يحدث عند الاتصال باستخدام ssh ، ستتم مطالبتك بكلمة المرور. لن تتم مطالبتك باسم المستخدم ، كما هو محدد في الأمر.

اقرأ أيضا:  كيفية تثبيت Linux على M1 Mac باستخدام Apple Silicon

يمكنك أيضًا استخدام أحرف البدل مثل ما يلي:

scp *.tar.gz [email protected]:~/backups/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

لنسخ ملف من الخادم البعيد إلى الجهاز المحلي ، ما عليك سوى عكس المعلمات:

scp [email protected]:~/backups/backup.tar.gz ./

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

لاحظ النقطة في نهاية الأمر؟ إنه يعني “المجلد الحالي” ، كما هو الحال مع الأوامر القياسية cp أو mv. يمكنك بسهولة تحديد دليل آخر إذا أردت ذلك.

scp -r [email protected]:~/backups/ backups-from-server/

ونفس الشيء مع البطاقات البرية:

scp [email protected]:~/backups/*.txz ./

لنسخ دليل بشكل متكرر إلى خادم بعيد ، استخدم الخيار -r:

scp -r backups/ [email protected]:~/backups/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

لنسخ نسخة متكررة من دليل من الخادم البعيد إلى الجهاز المحلي ، استخدم:

scp -r [email protected]:~/backups/ ./

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

ضغط نقل الملفات في SCP

بصرف النظر عن النسخ الأساسي ، من الممكن أيضًا تعديل سلوك SCP أثناء عمليات نقل الملفات هذه. على سبيل المثال ، يمكنك استخدام العلامة -C لضغط البيانات التي يرسلها SCP إلى العملاء البعيدين:

scp -C backup.tar.gz [email protected]:/home/ramces/

يعمل هذا الخيار عن طريق ضغط كل حزمة بيانات حيث يتم إرسالها من خلال برنامج SCP. على هذا النحو ، يمكن أن يكون هذا مفيدًا بشكل لا يصدق إذا كنت في اتصال محدود النطاق الترددي وتريد إرسال ملف بشكل موثوق إلى خادم بعيد.

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

على غرار الخيارات أعلاه ، يمكنك أيضًا استخدام -C جنبًا إلى جنب مع العلامة -r لضغط الملفات ونقلها بشكل متكرر إلى جهاز بعيد. على سبيل المثال ، يقوم الأمر التالي بضغط واسترداد ملف “backup.tar.gz” من خادمي البعيد:

scp -Cr [email protected]:/home/ramces/backups /home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

تحسين نقل البيانات باستخدام SCP

بالنسبة للجزء الأكبر ، تحاول SCP استخدام خوارزمية تشفير AES-128 لجميع عمليات نقل الملفات الخاصة بها. ومع ذلك ، هناك حالات لن تكون فيها هذه الخوارزمية المعينة مناسبة للملفات التي تريد نقلها.

مع العلم بذلك ، من الممكن زيادة تحسين وتأمين SCP عن طريق التغيير المباشر لخوارزمية التشفير لعملية نقل محددة. للقيام بذلك ، تحتاج إلى استخدام العلامة -c متبوعة بالشفرة التي تريد استخدامها.

على سبيل المثال ، ينقل الأمر التالي ملف “backup.tar.gz” إلى خادمي البعيد باستخدام AES-256:

scp -c aes256-ctr ./backup.tar.gz [email protected]:/home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

علاوة على ذلك ، يتيح لك الخيار -c أيضًا تقديم قائمة بالأصفار التي تريد استخدامها لنقل ملف معين. على سبيل المثال ، يستخدم الأمر التالي كلاً من AES-192 و AES-256 أثناء نقل ملف “backup.tar.gz” إلى خادمي البعيد:

scp -c aes192-ctr,aes256-ctr ./backup.tar.gz [email protected]:/home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

الحد من استخدام النطاق الترددي في SCP

بينما يمكن أن يساعدك ضغط حزم الملفات في استخدام SCP في ظروف الشبكة السيئة ، فمن الممكن أيضًا تقييد النطاق الترددي الذي يستخدمه البرنامج أثناء النقل. هذا مفيد في الحالات التي تستخدم فيها اتصالًا محدودًا ولا تريد أن يسيطر SCP على النطاق الترددي لشبكتك.

اقرأ أيضا:  7 طرق لأجل تسريع Ubuntu

للحد من النطاق الترددي الفعال للبرنامج ، تحتاج إلى استخدام العلامة -l متبوعة بالحد الأعلى الذي تريده بالكيلوبت في الثانية (Kb / s). على سبيل المثال ، سيؤدي تشغيل الأمر التالي إلى نقل ملف “backup.tar.gz” إلى خادمي البعيد بنطاق ترددي فعال يبلغ 1600 Kb/s:

scp -l 1600 ./backup.tar.gz [email protected]:/home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

عن بعد إلى عن بعد مع SCP

بصرف النظر عن نسخ الملفات المحلية إلى خادمك البعيد والعكس صحيح ، يمكنك أيضًا استخدام SCP لإدارة عدة خوادم بعيدة من جهازك المحلي ، لأن SCP يتعامل فقط مع نقل الملفات ولا يميز بين جهاز محلي وجهاز بعيد.

للنقل بين خادمين عن بُعد ، تحتاج إلى ذكر اسم المستخدم وعنوان كل من هذه الأجهزة بشكل صريح. على سبيل المثال ، سيؤدي تشغيل الأمر التالي إلى نقل ملف “remote-backup.tar.gz” الخاص بي بين خادمين عن بُعد:

scp [email protected]:/home/ramces/remote-backup.tar.gz [email protected]:/home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

استخدام وكيل مع SCP

بشكل افتراضي ، يستخدم SCP عنوان IP الخاص بجهازك المحلي عندما ينقل الملفات بين مضيفين مختلفين. في حين أن هذا جيد تمامًا في المواقف العادية ، فقد تكون مشكلة إذا كانت شبكتك المحلية تقيد أي نشاط من أنشطة SCP. إحدى الطرق السريعة للتعامل مع هذه المشكلة هي تمرير اتصالك المحلي عبر وكيل SSH.

للقيام بذلك ، تحتاج إلى استخدام علامة -o متبوعة بخيار ProxyCommand. يتيح لك ذلك إنشاء اتصال SSH أساسي بجهاز جديد يقوم بدوره بتنفيذ أمر SCP الخاص بك. على سبيل المثال ، سيؤدي تشغيل ما يلي إلى إنشاء وكيل SSH جديد بجهاز بعيد ونقل ملف “backup.tar.gz” باستخدامه:

scp -o "ProxyCommand ssh [email protected] nc %h %p" ./backup.tar.gz [email protected]:/home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

تغيير المنفذ الافتراضي في SCP

بصرف النظر عن إنشاء وكيل SSH أساسي ، يمكنك أيضًا تغيير المنفذ الافتراضي لـ SCP. هذا مفيد بشكل خاص إذا كنت تقوم بتأمين خادم Linux ولا تريد كشف أي منافذ افتراضية.

اقرأ أيضا:  كيفية استخدام AUR في Arch Linux

لاستخدام SCP مع منفذ مختلف ، تحتاج إلى استخدام علامة -P متبوعة برقم المنفذ الذي تريد استخدامه. على سبيل المثال ، سيقوم الأمر التالي بنسخ دليل “النسخ الاحتياطي” بشكل متكرر والاتصال بالخادم البعيد باستخدام المنفذ 2222:

scp -r -P 2222 ./backup [email protected]:/home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

استخدام وضع SCP Quiet

أخيرًا ، من الممكن أيضًا إزالة أي خرج طرفي تمامًا من أمر SCP. هذا مفيد بشكل خاص إذا كنت تريد إنشاء نص برمجي غير تفاعلي يتم تشغيله في جهازك. ليس ذلك فحسب ، بل يمكنك أيضًا أتمتة هذه العملية بالكامل عن طريق إنشاء cronjob ونقل مفتاح SSH خاص إلى الخادم الخاص بك.

لإنشاء نقل SCP هادئ ، تحتاج إلى استخدام العلامة -q. على سبيل المثال ، سينقل الأمر التالي ملف “backup.tar.gz” الخاص بي بصمت إلى خادمي البعيد:

scp -q ./backup.tar.gz [email protected]:/home/ramces/

كيفية نقل الملفات بأمان في Linux باستخدام SCP - %categories

أسئلة شائعة

س 1. لا يعمل جهاز التحكم عن بعد الخاص بي إلى النقل عن بُعد في SCP. كيف يمكنني اصلاح هذا؟
الجواب. غالبًا ما تكون هذه المشكلة ناتجة عن منفذ محظور في أحد ملفات تكوين جهازك البعيد. لإصلاح ذلك ، تأكد من أن المنفذ الافتراضي لـ SSH مفتوح على كلا الجهازين.

يمكن أن تحدث هذه المشكلة أيضًا بسبب وجود أحد أجهزتك البعيدة وراء اتصال CG-NAT ، لذلك لن يتم حل أي اتصال خارجي بجهازك البعيد بشكل صحيح. لحل هذه المشكلة ، تحتاج إلى استخدام برنامج VLAN ، مثل Yggdrasil ، والذي سيسمح لك بالمرور عبر CG-NAT.

س 2. قمت بتشغيل وكيل SCP وأغلق المضيف البعيد الاتصال. ماذا بإمكاني أن أفعل؟
الجواب. هذه المشكلة على الأرجح بسبب مشكلة في جهاز الوكيل الخاص بك. لبدء وكيل SSH بشكل صحيح ، تأكد من أن الجهاز الذي تريد استخدامه به خادم OpenSSH و netcat. لتثبيت هذه البرامج في Ubuntu، قم بتشغيل الأمر التالي: sudo apt install ssh netcat.

س 3. هل من الممكن معرفة جميع الأصفار المتاحة لـ SCP؟
الجواب. بشكل افتراضي ، يعتمد برنامج SCP بشكل كبير على بروتوكول SSH لوظائف التشفير الخاصة به. لهذا السبب ، يمكنك استخدام برنامج SSH لطباعة قائمة الأصفار التي يمكنك استخدامها جنبًا إلى جنب مع SCP. على سبيل المثال ، يمكنك تشغيل ssh -Q ciphers لطباعة قائمة مختصرة بكل الشفرات المتوفرة في جهازك.

قد يعجبك ايضا