Πώς να χρησιμοποιήσετε την εντολή scp για την ασφαλή μεταφορά αρχείων στο Linux

Ας υποθέσουμε ότι θέλετε να μεταφέρετε ορισμένα αρχεία μεταξύ διακομιστών σε ένα σύστημα Linux. Υπάρχουν πολλοί τρόποι με τους οποίους μπορείτε να ολοκληρώσετε την εργασία, αλλά αν η προτεραιότητά σας είναι να μεταφέρετε αρχεία με ασφάλεια, έχετε μερικές επιλογές. Η πιο εύκολη λύση είναι να χρησιμοποιήσετε την εντολή scp ή safe copy για να μεταφέρετε τα αρχεία σας χωρίς να ανησυχείτε για την ασφάλεια. Σε αυτό το άρθρο, θα εξηγήσουμε πώς να χρησιμοποιείτε με ασφάλεια τη μεταφορά αρχείων χρησιμοποιώντας την εντολή scp στο σύστημά σας Linux.

Μεταφορά αρχείων με εντολή scp στο Linux (2023)

Τι είναι το scp Command στο Linux

Όταν πρόκειται για μεταφορά αρχείων μέσω ασφαλούς δικτύου, η εντολή scp μπορεί να είναι πολύ χρήσιμη. Αντιπροσωπεύει το Secure Copy Protocol και μεταφέρει αρχεία και καταλόγους μεταξύ δύο συστημάτων μέσω σύνδεσης SSH (Secure Shell). Με το ssh, μπορείτε να είστε σίγουροι για την ασφάλεια των αρχείων σας καθώς είναι κρυπτογραφημένα από προεπιλογή. Με απλούστερους όρους, η εντολή scp είναι μια πιο ασφαλής έκδοση της εντολής cp, για την οποία μπορείτε να διαβάσετε τα πάντα στο άρθρο μας για τις εντολές του τερματικού Linux.

Πώς να χρησιμοποιήσετε την εντολή scp: Σύνταξη & Επιλογές

Προτού μπορέσουμε να μεταφέρουμε αρχεία μέσω scp, ας δούμε τη σύνταξη και τις επιλογές της εντολής εδώ:

scp <επιλογή> <[email protected]_ip_address:path/to/source/file> <[email protected]_ip_address:target/path>

Κατανόηση της σύνταξης:

  • Πρώτον, <[email protected]Το _ip_address:path/to/source/file> καθορίζει το σύστημα «πηγή» από όπου πρέπει να μεταφέρετε τα αρχεία/καταλόγους σας.
  • Δεύτερον, <[email protected]Το _ip_address:target/path> καθορίζει το σύστημα «στόχου» στο οποίο θέλετε να μεταφέρετε τα αρχεία/καταλόγους σας.

Εάν αφήσετε κάποια από τις παραπάνω παραμέτρους, η εντολή scp στο Linux θα αναζητήσει πρώτα το αρχείο και στη συνέχεια θα αντιγράψει το αρχείο τοπικά. Μερικές από τις επιλογές για σύζευξη με την εντολή είναι:

  Πώς να βρείτε ιούς μέσω της γραμμής εντολών στο Linux

OptionsDestination-P Καθορίζει ποια θύρα θα συνδεθεί με το κεντρικό σύστημα. Εάν παραλειφθεί, τότε θα χρησιμοποιεί τη θύρα 22 από προεπιλογή.-pΔιατηρεί τους χρόνους τροποποίησης, τους χρόνους πρόσβασης και τις λειτουργίες από το αρχικό αρχείο όταν αντιγράφεται στο σύστημα προορισμού.-rΑντιγράφει ολόκληρο τον κατάλογο στο σύστημα προορισμού αναδρομικά.-Χρησιμοποιείται για τη σύνδεση του σύστημα προέλευσης και σύστημα προορισμού μέσω ενός συστήματος μεσολάβησης (jump host).-3όταν χρησιμοποιείται αυτή η σημαία, αντιγράφει τα αρχεία τόσο στο σύστημα προορισμού όσο και στο τοπικό σύστημα-4αναγκάζει την εντολή scp να χρησιμοποιεί μόνο διευθύνσεις IPv4.-6αναγκάζει το scp εντολή για χρήση μόνο διευθύνσεων IPv6.

Πώς να αντιγράψετε αρχεία χρησιμοποιώντας την εντολή scp

Πριν χρησιμοποιήσετε την εντολή scp στο Linux, υπάρχουν ορισμένες προϋποθέσεις που πρέπει να εκπληρώσετε τόσο στο κεντρικό όσο και στο σύστημα προορισμού:

  • ssh θα πρέπει να εγκατασταθεί
  • πρόσβαση root ή οποιονδήποτε χρήστη με δικαιώματα sudo

Αντιγράψτε αρχεία από τον τοπικό κεντρικό υπολογιστή στον απομακρυσμένο στόχο

Εάν έχετε ένα αρχείο που πρέπει να μεταφέρετε από το τοπικό σας σύστημα σε έναν απομακρυσμένο στόχο, πρέπει να χρησιμοποιήσετε την ακόλουθη σύνταξη:

scp @:

Εάν η παραπάνω σύνταξη μπορεί να φαίνεται περίπλοκη, ένα παράδειγμα θα το ξεκαθαρίσει:

scp test.txt [email protected]:/home/mote2/Documents/

Στο παραπάνω παράδειγμα:

  • Το test.txt είναι το όνομα του αρχείου που πρόκειται να μεταφερθεί και βρίσκεται στον τρέχοντα κατάλογο του τοπικού συστήματος.
  • test είναι το όνομα χρήστη στο σύστημα προορισμού.
  • 139.144.11.105 είναι η διεύθυνση IP του συστήματος προορισμού.
  • /home/remote2/Documents/ είναι η θέση στο σύστημα προορισμού όπου θα αποθηκευτεί το μεταφερόμενο αρχείο.

Αντιγράψτε αρχεία από τον απομακρυσμένο κεντρικό υπολογιστή σε τοπικό στόχο

Εάν χρειάζεται να μεταφέρετε ένα αρχείο από έναν απομακρυσμένο κεντρικό υπολογιστή στον τοπικό σας υπολογιστή, χρησιμοποιήστε την ακόλουθη σύνταξη εντολών scp στο σύστημα Linux:

scp @:

Για παράδειγμα, ας υποθέσουμε ότι πρέπει να μεταφέρετε ένα αρχείο με το όνομα test.py από τον απομακρυσμένο διακομιστή στον οποίο εργάζεστε, χρησιμοποιήστε αυτήν την εντολή:

scp [email protected]:/home/test/test1.py ~/test1.py

Σε αυτό το παράδειγμα:

  • Το test είναι το όνομα χρήστη απομακρυσμένου κεντρικού υπολογιστή.
  • 10.10.11.113 είναι η διεύθυνση IP του απομακρυσμένου κεντρικού υπολογιστή.
  • Το /home/test/test1.py είναι η διαδρομή του αρχείου που θα μεταφερθεί από τον απομακρυσμένο κεντρικό υπολογιστή.
  • ~/test1.py είναι το όνομα του αρχείου αφού μεταφερθεί στον τοπικό υπολογιστή και αποθηκευτεί στον αρχικό κατάλογο.

Μεταφέρετε αρχεία από έναν απομακρυσμένο κεντρικό υπολογιστή σε έναν άλλο απομακρυσμένο στόχο

Με την εντολή scp, μπορείτε όχι μόνο να μεταφέρετε αρχεία μεταξύ του τοπικού σας συστήματος και ενός απομακρυσμένου υπολογιστή, αλλά και να μεταφέρετε αρχεία μεταξύ δύο απομακρυσμένων συστημάτων. Ωστόσο, προτού μπορέσετε να μεταφέρετε αρχεία από ένα απομακρυσμένο σύστημα σε άλλο απομακρυσμένο σύστημα, συνιστάται να δημιουργήσετε ένα ιδιωτικό κλειδί ssh και ένα δημόσιο κλειδί ssh στο σύστημα προέλευσης και να αποθηκεύσετε ένα αντίγραφο του δημόσιου κλειδιού στο σύστημα προορισμού.

  Πώς να φιλοξενήσετε το δικό σας σύστημα RSS σε Linux με Tiny Tiny RSS

Γενικά, οι χρήστες παραπονούνται για το σφάλμα “Αποτυχία επαλήθευσης κλειδιού κεντρικού υπολογιστή” κατά τη μεταφορά αρχείων μεταξύ δύο απομακρυσμένων συστημάτων. Για να παρακάμψετε το σφάλμα, χρησιμοποιήστε ένα κλειδί ssh ως πρόσθετο μέτρο. Έχουμε εξηγήσει πώς μπορείτε να το κάνετε αυτό εδώ:

1. Δημιουργήστε ένα ζεύγος δημόσιου/ιδιωτικού κλειδιού στον διακομιστή προέλευσης με αυτήν την εντολή:

ssh-keygen -t

2. Για αλγόριθμους κρυπτογράφησης, μπορείτε να χρησιμοποιήσετε το “rsa”, που είναι ο πιο συχνά χρησιμοποιούμενος αλγόριθμος ή οποιονδήποτε άλλο αλγόριθμο της επιλογής σας.

3. Στη συνέχεια, θα σας ζητηθεί να επιλέξετε τη θέση αποθήκευσης του κλειδιού ssh. Μπορείτε είτε να το αποθηκεύσετε σε οποιαδήποτε τοποθεσία της επιλογής σας είτε στην προεπιλεγμένη τοποθεσία.

4. Για τη φράση πρόσβασης, μπορείτε να εισαγάγετε οτιδήποτε της επιλογής σας ή να το αφήσετε κενό πατώντας Enter.

5. Στη συνέχεια, αντιγράψτε το δημόσιο κλειδί στον διακομιστή προορισμού χρησιμοποιώντας την παρακάτω εντολή. Με αυτό, μπορείτε ακόμη και να συνδεθείτε στο σύστημα προορισμού χωρίς κωδικό πρόσβασης χρησιμοποιώντας ssh.

ssh-copy-id @

Σημείωση: η μέθοδος σύνδεσης χωρίς κωδικό πρόσβασης θα λειτουργεί μόνο για τον χρήστη για τον οποίο έχετε δημιουργήσει το κλειδί ssh.

6. Αφού δημιουργήσετε και αποθηκεύσετε το κλειδί ssh στον απομακρυσμένο διακομιστή, χρησιμοποιήστε αυτήν τη σύνταξη εντολής scp για να ανταλλάξετε αρχεία μεταξύ δύο απομακρυσμένων συστημάτων που εκτελούν Linux:

scp @: @:

Ας υποθέσουμε ότι πρέπει να μεταφέρετε ένα αρχείο με το όνομα test.txt από έναν απομακρυσμένο κεντρικό υπολογιστή σε έναν άλλο απομακρυσμένο δέκτη, χρησιμοποιήστε την εντολή:

scp [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documents/test1.txt

Σε αυτό το παράδειγμα:

  • remote1 είναι το όνομα του χρήστη στον κεντρικό υπολογιστή απομακρυσμένου αποστολέα
  • 10.10.11.113 είναι η διεύθυνση IP του κεντρικού υπολογιστή απομακρυσμένου αποστολέα
  • Το /home/test1/test.txt είναι η διαδρομή προς το αρχείο που θα σταλεί
  • remote2 είναι το όνομα του χρήστη στον απομακρυσμένο στόχο δέκτη
  • 10.11.27.111 είναι η διεύθυνση IP του απομακρυσμένου στόχου δέκτη
  • Το /home/remote2/Documents/test1.txt είναι το όνομα και η διαδρομή που θα αποθηκευτούν για το αρχείο που θα ληφθεί.
  Πώς να αφαιρέσετε περιττά δεδομένα στο Linux με το Fdupes

Μεταφέρετε πολλά αρχεία χρησιμοποιώντας την εντολή scp

Η μεταφορά πολλών αρχείων ένα προς ένα μπορεί να είναι μια κουραστική εργασία για οποιονδήποτε. Αντίθετα, μπορείτε να χρησιμοποιήσετε την παρακάτω σύνταξη για να ανταλλάξετε αρχεία χρησιμοποιώντας την εντολή scp στο Linux:

scp @:

Για παράδειγμα – Ας υποθέσουμε ότι πρέπει να στείλετε τέσσερα αρχεία, συμπεριλαμβανομένων των test1.txt, test2.py, test3.sh και test4.c, σε έναν απομακρυσμένο δέκτη, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή:

scp -P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documents

Ας καταλάβουμε πώς λειτουργεί η εντολή στο παράδειγμα και τι κάνει:

  • Το -p 2222 χρησιμοποιείται για τον καθορισμό σύνδεσης μέσω της θύρας 22
  • test1.txt test2.py test3.sh test4.c είναι το όνομα των αρχείων που πρόκειται να μεταφερθούν
  • Το remote_1 είναι το όνομα χρήστη του συστήματος λήψης
  • 10.10.11.113 είναι η διεύθυνση IP του δέκτη
  • Το /home/remote_1/Documents αναφέρεται στη διαδρομή για την αποθήκευση του ληφθέντος αρχείου.

Μπορείτε ακόμη να χρησιμοποιήσετε χαρακτήρες μπαλαντέρ για να στείλετε πολλά αρχεία με την ίδια επέκταση όπως φαίνεται παρακάτω:

scp . @:

Για παράδειγμα, εάν πρέπει να στείλετε όλα τα αρχεία .py σε έναν απομακρυσμένο διακομιστή, χρησιμοποιήστε την παρακάτω εντολή scp στο τερματικό Linux:

scp *.py [email protected]:/home/remote_1/

Εδώ,

  • *.py σημαίνει όλα τα αρχεία python
  • Το remote1 είναι το όνομα χρήστη του δέκτη
  • 10.10.11.113 είναι η διεύθυνση IP του δέκτη
  • Το /home/remote_1/ είναι η θέση αποθήκευσης του ληφθέντος αρχείου

Συχνές Ερωτήσεις

Είναι ασφαλής η μεταφορά αρχείων SCP;

Το πρωτόκολλο ασφαλούς αντιγραφής ή scp είναι ένα πρωτόκολλο που βασίζεται στην τεχνολογία SSH και χρησιμοποιεί κρυπτογράφηση και έλεγχο ταυτότητας για την ανταλλαγή αρχείων μεταξύ δύο κεντρικών υπολογιστών. Αυτό εξασφαλίζει πλήρη ασφάλεια και ακεραιότητα δεδομένων μεταξύ των δύο κεντρικών υπολογιστών.

Είναι το SCP πιο ασφαλές από το SFTP;

Και τα δύο πρωτόκολλα SCP και SFTP είναι στο ίδιο επίπεδο όσον αφορά την ασφάλεια. Το κύριο πλεονέκτημα της χρήσης scp έναντι του SFTP είναι οι γρήγορες ταχύτητες μεταφοράς που είναι ιδιαίτερα χρήσιμες σε δίκτυα υψηλής καθυστέρησης.

Μεταφέρετε αρχεία με ασφάλεια χρησιμοποιώντας την εντολή scp στο Linux

Σε κάποιο χρονικό σημείο, κάθε χρήστης πρέπει να ανταλλάξει ορισμένα αρχεία μέσω του δικτύου. Η εντολή scp διευκολύνει τη μεταφορά αρχείων με ασφάλεια και αποτελεσματικότητα ακόμη και σε δίκτυο υψηλής καθυστέρησης. Σίγουρα, η γνώση των διαφόρων επιλογών και σύνταξης scp μπορεί να είναι επίσης χρήσιμη. Μπορείτε επίσης να ανατρέξετε στους οδηγούς μας για το πώς να μετονομάσετε ένα αρχείο στο Linux και πώς να διαγράψετε ένα αρχείο στο Linux για να βελτιώσετε περαιτέρω τις δεξιότητές σας στη διαχείριση αρχείων στο λειτουργικό σύστημα. Ελπίζουμε ότι αυτό το άρθρο σας βοήθησε να μάθετε πώς να χρησιμοποιείτε την εντολή scp για τη μεταφορά αρχείων σε υπολογιστές Linux. Εάν αντιμετωπίζετε προβλήματα κατά τη χρήση της εντολής, ενημερώστε μας στην ενότητα σχολίων.