Εισαγωγή
Προαπαιτούμενα
Δημιουργία και χρήση κλειδιών SSH
Μεταφορά αρχείων με SCP
Μεταφορά αρχείων με Rsync
Εισαγωγή
Όταν χρησιμοποιείτε εντολές όπως scpή rsyncμε τη δημόσια διεύθυνση IP του διακομιστή σας, θα μεταφέρετε αυτόματα τα αρχεία μέσω του (δημόσιου) Διαδικτύου. Εάν έχετε δύο περιπτώσεις με ενεργοποιημένη την ιδιωτική δικτύωση, μπορείτε επίσης να μεταφέρετε αυτά τα αρχεία μέσω του ιδιωτικού δικτύου και να αποτρέψετε επιπλέον χρεώσεις για το χρησιμοποιούμενο εύρος ζώνης.
Προαπαιτούμενα
- Δύο περιπτώσεις (θα τις ονομάσουμε
server_aκαι server_b) με ενεργοποιημένη την ιδιωτική δικτύωση
- Και οι δύο περιπτώσεις θα πρέπει να έχουν ιδιωτικές διευθύνσεις IP διαμορφωμένες στο ίδιο υποδίκτυο (δείτε Διαμόρφωση ιδιωτικού δικτύου )
- Η συνδεσιμότητα SSH θα πρέπει να είναι δυνατή μεταξύ των δύο περιπτώσεων
- Ένας χρήστης που δεν είναι root (θα τον ονομάσουμε
your_user)
Δημιουργία και χρήση κλειδιών SSH
Η μεταφορά αρχείων είναι δυνατή χρησιμοποιώντας έλεγχο ταυτότητας ονόματος χρήστη και κωδικού πρόσβασης, αλλά είναι πολύ πιο ασφαλές να χρησιμοποιείτε κλειδιά SSH. Η δημιουργία του δημόσιου-ιδιωτικού κλειδιού περιγράφεται στο Πώς μπορώ να δημιουργήσω κλειδιά SSH; . Εάν αποφασίσετε να παραλείψετε αυτήν την ενότητα, τότε θα πρέπει να εισάγετε τον κωδικό πρόσβασης του απομακρυσμένου χρήστη σε κάθε εντολή.
Υποθέτοντας ότι το ζεύγος δημόσιου-ιδιωτικού κλειδιού στο server_aβρίσκεται στο ~/.ssh/id_rsa, μπορείτε να εκτελέσετε την ακόλουθη εντολή για να μεταφέρετε το δημόσιο κλειδί σας στο server_b. Χρησιμοποιήστε την ιδιωτική διεύθυνση IP του server_b.
ssh-copy-id your_user@192.168.0.101
Όταν σας ζητηθεί, δώστε τον κωδικό πρόσβασης για your_user.
ssh-copy-id your_user@192.168.0.101 /usr/bin/ssh-copy-id: INFO: Source of
key(s) to be installed: "/home/your_user/.ssh/id_rsa.pub" The
authenticity of host '192.168.0.101 (192.168.0.101)' can't be
established. ECDSA key fingerprint is
SHA256:g9dfqycqU25b567/HDjPTqaQqKhep/fysNCQAG9yJG4. ECDSA key
fingerprint is MD5:41:67:be:68:51:9b:38:a8:95:82:71:47:f1:35:39:66.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s),
to filter out any that are already installed /usr/bin/ssh-copy-id:
INFO: 1 key(s) remain to be installed -- if you are prompted now it is
to install the new keys your_user@192.168.0.101's password:
Number of key(s) added: 1
Τώρα δοκιμάστε να συνδεθείτε στο μηχάνημα.
ssh your_user@192.168.0.101
Ελέγξτε για να βεβαιωθείτε ότι προστέθηκαν μόνο τα κλειδιά που θέλατε.
Εάν τώρα κάνετε SSH από server_aέως server_b, δεν θα ζητά πλέον κωδικό πρόσβασης. Σε περίπτωση που το ζεύγος δημόσιου-ιδιωτικού κλειδιού δεν βρίσκεται μέσα ~/.ssh/id_rsa, μπορείτε να καθορίσετε τη θέση του με την -iπαράμετρο (θα χρειαστείτε επίσης αυτή την παράμετρο με την εντολή scpκαι rsync).
ssh-copy-id -i /path/to/your/public_key your_user@192.168.0.101
ssh -i /path/to/your/private_key your_user@192.168.0.101
Μεταφορά αρχείων με SCP
Το SCP σημαίνει Secure Copy και μεταφέρει όλα τα δεδομένα μέσω μιας σύνδεσης SSH. Για να αντιγράψουμε ένα μεμονωμένο αρχείο, ~/myfile, από server_aστον /tmpκατάλογο στο server_bμπορούμε να εκδώσουμε την ακόλουθη εντολή.
scp ~./myfile your_user@192.168.0.101:/tmp
Για να αντιγράψετε έναν πλήρη φάκελο με όλα τα περιεχόμενά του (συμπεριλαμβανομένων συμβολικών συνδέσμων), μπορείτε να προσθέσετε την -rεπιλογή
scp -r ~./mydir your_user@192.168.0.101:/tmp
Μεταφορά αρχείων με Rsync
Το Rsync είναι ένα ευέλικτο εργαλείο για την αντιγραφή αρχείων, το οποίο χρησιμοποιείται συχνότερα για το συγχρονισμό του περιεχομένου δύο τοποθεσιών. Χρησιμοποιεί την ίδια ασφαλή σήραγγα SSH για τη μεταφορά δεδομένων. Ένας πλήρης φάκελος μπορεί να συγχρονιστεί σε ένα απομακρυσμένο /tmpdir με την ακόλουθη εντολή
rsync -av ~/mydir your_user@192.168.0.101:/tmp
Η -vεπιλογή αυξάνει την πολυγλωσσία, ώστε να μπορείτε να παρακολουθείτε την πρόοδο της μεταφοράς. Η -aεπιλογή ενεργοποιεί τη «λειτουργία αρχειοθέτησης» η οποία αντιγράφει τα αρχεία σας αναδρομικά, διατηρώντας παράλληλα χαρακτηριστικά όπως κάτοχος, ομάδα και δικαιώματα.