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

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

scp transfer linux 00 featured image 800x400.jpg - كيفية نقل الملفات بأمان في Linux باستخدام SCP

تكوين SSH

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

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

scp transfer linux 01 installing ssh.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

scp transfer linux 02 fedora enable firewall.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

ip addr

scp transfer linux 04 check ip address.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

ssh user@remote.machine.ip.address

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

scp transfer linux 05 connecting to remote server.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

أدخل كلمة مرور هذا الحساب ، وأنت تعمل. إذا تلقيت سؤالاً حول “لا يمكن إثبات أصالة المضيف” ، فما عليك سوى الإجابة بـ “نعم”. إنه فحص أمني مصمم للتأكد من أنك متصل بخادمك الفعلي وليس محتالاً. يجب أن ترى نفس المطالبة التي تظهر على نظام العميل الذي تراه عند تسجيل الدخول مباشرة إلى الخادم ، مما يعني أن اتصالك كان ناجحًا. يجب عليك أيضًا تكوين اتصالات 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 ramces@192.168.68.165:~/backups/

scp transfer linux 06 basic copying.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

scp *.tar.gz ramces@192.168.68.165:~/backups/

scp transfer linux 07 glob matching copy.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

scp ramces@192.168.68.165:~/backups/backup.tar.gz ./

scp transfer linux 08 inverse copying.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

scp -r ramces@192.168.68.165:~/backups/ backups-from-server/

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

scp ramces@192.168.68.165:~/backups/*.txz ./

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

scp -r backups/ ramces@192.168.68.165:~/backups/

scp transfer linux 09 recursive copying.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

scp -r ramces@192.168.68.165:~/backups/ ./

scp transfer linux 10 reverse recursive copying.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

scp -C backup.tar.gz ramces@192.168.68.165:/home/ramces/

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

scp transfer linux 11 data compression copy.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

scp -Cr ramces@192.168.68.165:/home/ramces/backups /home/ramces/

scp transfer linux 12 reverse data compression copy.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

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

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

scp -c aes256-ctr ./backup.tar.gz ramces@192.168.68.165:/home/ramces/

scp transfer linux 13 change default cipher.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

scp -c aes192-ctr,aes256-ctr ./backup.tar.gz ramces@192.168.68.165:/home/ramces/

scp transfer linux 14 create cipher preference list.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

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

scp -l 1600 ./backup.tar.gz ramces@192.168.68.165:/home/ramces/

scp transfer linux 15 limit bandwidth during copy.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

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

scp ramces@192.168.68.108:/home/ramces/remote-backup.tar.gz ramces@192.168.68.165:/home/ramces/

scp transfer linux 16 remote to remote copy.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

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

scp -o "ProxyCommand ssh ramces@192.168.68.108 nc %h %p" ./backup.tar.gz ramces@192.168.68.165:/home/ramces/

scp transfer linux 17 ssh proxy bypass.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

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

scp -r -P 2222 ./backup ramces@192.168.68.165:/home/ramces/

scp transfer linux 18 using custom port.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

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

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

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

scp -q ./backup.tar.gz ramces@192.168.68.165:/home/ramces/

scp transfer linux 19 quiet mode.png - كيفية نقل الملفات بأمان في Linux باستخدام SCP

أسئلة شائعة

س 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 لطباعة قائمة مختصرة بكل الشفرات المتوفرة في جهازك.

جميع النصائح المذكورة هنا هي إعلامية وتم ترجمتها من المواقع الأجنية و لا تغني من استشارة أهل الاختصاص راجع صفحة

إشعار حقوق الطبع لموقع أحلى هاوم الإلكتروني