Ρύθμιση και επαλήθευση SFTP με έλεγχο ταυτότητας δημόσιου κλειδιού σε υπολογιστές-πελάτες και διακομιστές
περιβάλλον
- Παράθυρα
-
- Παράθυρα 10 Υπέρ
- Windows Server 2019
- Παράθυρα 7
- Windows Server 2012 R2
- ΆνοιγμαSH
-
- 7.7π.
- 8.1p1 - Βήτα
⇨ Λειτουργεί σε άλλες εκδόσεις, αλλά είναι ανεπιβεβαίωτο
Αρχικά
Την τελευταία φορά, έχετε δημιουργήσει ένα διακομιστή SFTP για να επαληθεύσετε ότι ο έλεγχος ταυτότητας κωδικού πρόσβασης σάς επιτρέπει να στέλνετε και να λαμβάνετε αρχεία. Αυτή τη φορά, το sftp στέλνει και λαμβάνει αρχεία χρησιμοποιώντας έλεγχο ταυτότητας δημόσιου κλειδιού.
Προετοιμασία εκ των προτέρων
- Ο υπολογιστής-πελάτης έχει εγκατεστημένο ένα πρόγραμμα-πελάτη OpenSSH
- Ο διακομιστής έχει εγκατεστημένο ένα διακομιστή OpenSSH.
- Ο διακομιστής ξεκινά την υπηρεσία OpenSSH και η θύρα 22 απελευθερώνεται.
Δημιουργία ιδιωτικών και δημόσιων κλειδιών στον υπολογιστή-πελάτη
Συνδεθείτε στον υπολογιστή-πελάτη. Μπορούν επίσης να δημιουργηθούν ιδιωτικά και δημόσια κλειδιά από την πλευρά του διακομιστή, αλλά το ιδιωτικό κλειδί θα είναι ο υπολογιστής-πελάτης και το δημόσιο κλειδί θα βρίσκεται στην άκρη του διακομιστή. Δημιουργήστε από την πλευρά του πελάτη.
Ξεκινήστε το PowerShell με δικαιώματα διαχειριστή.
Δημιουργήστε ένα αρχείο, μεταβείτε σε οποιοδήποτε φάκελο με την εντολή CD και πληκτρολογήστε την ακόλουθη εντολή:
ssh-keygen -t rsa -f id_rsa
Μπορείτε να βάλετε μια κάρτα (κωδικός πρόσβασης) στο κλειδί, οπότε παρακαλώ τοποθετήστε το εάν είναι απαραίτητο.
Εάν το κλειδί δημιουργηθεί με επιτυχία, τα δημόσια και ιδιωτικά κλειδιά δημιουργούνται στο φάκελο ως εξής: Το "id_rsa" είναι το ιδιωτικό κλειδί και το "id_rsa.pub" είναι το δημόσιο κλειδί.
Τοποθέτηση δημόσιου κλειδιού στο διακομιστή
Συνδεθείτε στα Windows με το λογαριασμό SFTP για το διακομιστή.
Τοποθετήστε το δημόσιο κλειδί "id_rsa.pub" στον παρακάτω φάκελο στο διακομιστή. 「. Εάν δεν έχετε φάκελο "ssh", δημιουργήστε έναν. Επίσης, αλλάξτε το όνομα αρχείου σε "authorized_keys". (Αντικαταστήστε το <> με το όνομα χρήστη που συνδέεστε με το SFTP.)
- C:\Χρήστες\< όνομα χρήστη>\.ssh
Σημειώστε ότι μόνο οι χρήστες με "διαχειριστές" ή χρήστες SFTP θα πρέπει να έχουν πρόσβαση σε αυτό το αρχείο. Οι συνδέσεις Sftp αποτυγχάνουν πάντα εάν άλλοι χρήστες έχουν πρόσβαση. Για παράδειγμα, η NG έχει μια ομάδα χρηστών ή όλων προσαρτημένη στο δικαίωμα.
Σε αυτό το παράδειγμα, ". Τα δικαιώματα πρόσβασης του φακέλου "ssh" είναι "Ομάδα:ΣΥΣΤΗΜΑ", "Ομάδα: Διαχειριστές" και "Χρήστης: sftptest". Εάν δεν μπορείτε να καταργήσετε ένα δικαίωμα, απενεργοποιήστε τη μεταβίβαση δικαιωμάτων.
Ενεργοποίηση ελέγχου ταυτότητας δημόσιου κλειδιού στο διακομιστή
Συνδεθείτε στο διακομιστή με χρήστες δικαιωμάτων διαχειριστή και, στη συνέχεια, ανοίξτε τους ακόλουθους φακέλους:
- C:\Δεδομένα προγράμματος\ssh
Δεδομένου ότι υπάρχει ένα αρχείο που ονομάζεται "sshd_config", αντιγράψτε το και αλλάξτε το όνομα του αρχείου σε "sshd_config_default" και ρυθμίστε ένα αντίγραφο ασφαλείας.
Ανοίξτε το "sshd_config" στο πρόγραμμα επεξεργασίας κειμένου που ξεκίνησε με δικαιώματα διαχειριστή.
Για να ενεργοποιήσετε τον έλεγχο ταυτότητας δημόσιου κλειδιού, αλλάξτε τον ως εξής:
#PubkeyAuthentication yes
↓↓↓
PubkeyAuthentication yes
Επίσης, ο έλεγχος ταυτότητας με κωδικό πρόσβασης είναι ενεργοποιημένος από προεπιλογή, οπότε αν θέλετε να τον απενεργοποιήσετε, αλλάξτε τον ως εξής.
#PasswordAuthentication yes
↓↓↓
PasswordAuthentication no
Θέλω να τοποθετήσω ένα δημόσιο κλειδί για κάθε λογαριασμό SFTP, οπότε θα σχολιάσω την ακόλουθη γραμμή:
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
↓↓↓
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Εάν θέλετε να καθορίσετε τον ριζικό κατάλογο για κάθε λογαριασμό SFTP, προσθέστε την ακόλουθη γραμμή: Ανάλογα με το αν καθορίζετε αυτό ή όχι, όταν καθορίζετε μια διαδρομή φακέλου από τον υπολογιστή-πελάτη, μπορεί να αλλάξει σε μορφή "C:\xxxxx" ή "/xxxxx".
Match User <ユーザー名>
ChrootDirectory <フォルダパス>
παράδειγμα
Match User TestUser
ChrootDirectory C:\Users\TestUser
Αφού αποθηκεύσετε sshd_config, επανεκκινήστε το διακομιστή OpenSSH.
Αποστολή και λήψη αρχείων από υπολογιστές-πελάτες με έλεγχο ταυτότητας δημόσιου κλειδιού
Τοποθετήστε το ιδιωτικό κλειδί "id_rsa" που δημιουργήσατε πριν συνδεθείτε με το SFTP σε ένα φάκελο που είναι προσβάσιμος μόνο στο χρήστη που εκτελεί SFTP. Σημειώστε ότι οι συνδέσεις sftp θα αποτύχουν εάν τοποθετηθούν σε ένα φάκελο στον οποίο μπορούν να έχουν πρόσβαση άλλοι χρήστες. Ειδικά αν ο φάκελος έχει δικαιώματα για τις ομάδες "Χρήστες και Όλοι", είναι NG.
Βασικά, συνιστάται επειδή θα αναφέρεται αυτόματα στη διαδρομή εάν την τοποθετήσετε στον ακόλουθο φάκελο.
- C:\Χρήστες\< όνομα χρήστη>\.ssh
Του πελάτη". Τα δικαιώματα πρόσβασης του φακέλου "ssh" είναι "Ομάδα:ΣΥΣΤΗΜΑ", "Ομάδα: Διαχειριστές", "Χρήστης: < χρήστης σύνδεσης >".
Εάν θέλετε να αποκτήσετε πρόσβαση σε sftp χρησιμοποιώντας το ιδιωτικό κλειδί, πληκτρολογήστε την εντολή ως εξής (αντικαταστήστε την <>): Αν έχετε δημιουργήσει μια πεζοχώρη, εισαγάγετε και μια πεζή κάρτα.
sftp -i id_rsa <ユーザー名>@<サーバー名>
Εάν συνδεθείτε με επιτυχία, θα μεταβείτε στην εμφάνιση του συνδεδεμένου χρήστη.
Μπορείτε επίσης να ελέγξετε ότι μπορείτε να συνδεθείτε με την εντολή dir.
Τώρα που έχετε ετοιμάσει ένα αρχείο που ονομάζεται "test3.txt", στείλτε το αρχείο με την εντολή τοποθέτησης.
put c:\temp\test3.txt
Εάν κοιτάξετε το φάκελο C:\Users\sftptest από την πλευρά του διακομιστή, μπορείτε να δείτε ότι αποστέλλεται το αρχείο test3.txt.
Προσπάθησε να ξεφύγεις από τον πελάτη.
get test3.txt c:\temp\test4.txt
Μπόρεσα να επιβεβαιώσω ότι ο φάκελος ήταν σε θέση να ληφθεί.
Περίληψη
Μπορείτε να στέλνετε και να λαμβάνετε αρχεία από το SFTP χρησιμοποιώντας έλεγχο ταυτότητας δημόσιου κλειδιού. Χρησιμοποιώντας ένα δημόσιο κλειδί, η πλευρά του διακομιστή δεν θα είναι σε θέση να γνωρίζει τον κωδικό πρόσβασης. Σας επιτρέπει να ανταλλάξετε αρχεία με μεγαλύτερη ασφάλεια από τον έλεγχο ταυτότητας κωδικού πρόσβασης.