Ρυθμίστε μια ασφαλή σύνδεση χωρίς κωδικό πρόσβασης στον απομακρυσμένο διακομιστή σας Ubuntu χρησιμοποιώντας κλειδιά SSH
Το SSH είναι ένα ασφαλές πρωτόκολλο δικτύου πελάτη-διακομιστή που βοηθά έναν υπολογιστή-πελάτη να συνδεθεί και να επικοινωνήσει με έναν απομακρυσμένο διακομιστή. Η σύνδεση SSH διασφαλίζει ότι οι εντολές που πληκτρολογούνται στο τερματικό αποστέλλονται στον απομακρυσμένο διακομιστή μέσω ενός κρυπτογραφημένου καναλιού.
Υπάρχουν δύο τύποι μηχανισμών ελέγχου ταυτότητας που χρησιμοποιούνται για τη σύνδεση με τον απομακρυσμένο διακομιστή, ο έλεγχος ταυτότητας βάσει κωδικού πρόσβασης (επιρρεπής σε επιθέσεις Brute-force) και ο έλεγχος ταυτότητας βάσει κλειδιών SSH (ο οποίος είναι πολύ ασφαλής).
Στον έλεγχο ταυτότητας που βασίζεται σε κλειδί SSH, δημιουργείται ένα ζεύγος κλειδιών στον υπολογιστή-πελάτη, που ονομάζεται δημόσιο κλειδί και ιδιωτικό κλειδί. Ένα αντίγραφο αυτού του δημόσιου κλειδιού διατίθεται στον απομακρυσμένο διακομιστή. Όταν ένας πελάτης στέλνει ένα αίτημα σύνδεσης στον διακομιστή, τότε ο διακομιστής δημιουργεί μια τυχαία συμβολοσειρά και την κρυπτογραφεί χρησιμοποιώντας το δημόσιο κλειδί. Αυτή η συμβολοσειρά μπορεί να αποκρυπτογραφηθεί μόνο χρησιμοποιώντας το ιδιωτικό κλειδί που είναι διαθέσιμο στον υπολογιστή-πελάτη. Αυτή η μέθοδος διασφαλίζει ότι ο διακομιστής είναι προσβάσιμος μόνο από πελάτες που περιέχουν το ιδιωτικό κλειδί.
Σε αυτόν τον οδηγό, θα δούμε πώς να ρυθμίσετε τα κλειδιά SSH στον διακομιστή Ubuntu 20.04 LTS.
Δείτε αν έχετε κάποιο κλειδί SSH στον υπολογιστή σας
Για να ελέγξετε εάν υπάρχει ήδη ένα ζεύγος κλειδιών SSH στον υπολογιστή σας, πληκτρολογήστε αυτήν την εντολή στο τερματικό σας.
ls -l ~/.ssh/id_*.pub
Αν επιστρέψει η παραπάνω εντολή κανένα τέτοιο αρχείο ή κατάλογος
ή δεν βρέθηκαν αντιστοιχίες
, τότε σημαίνει ότι το ζεύγος κλειδιών SSH δεν υπάρχει.
Εάν έχετε ένα υπάρχον ζεύγος κλειδιών SSH, τότε μπορείτε είτε να χρησιμοποιήσετε το ίδιο ζεύγος κλειδιών για πρόσβαση σε δύο απομακρυσμένους διακομιστές είτε μπορείτε επίσης να δημιουργήσετε ένα διαφορετικό ζεύγος κλειδιών με διαφορετικό όνομα. Ας προχωρήσουμε στο επόμενο βήμα και ας δούμε πώς να δημιουργήσουμε κλειδιά SSH και για τις δύο περιπτώσεις.
Δημιουργία κλειδιών SSH σε υπολογιστή πελάτη
Για να δημιουργήσετε ένα νέο ζεύγος κλειδιών SSH στον υπολογιστή σας, πληκτρολογήστε την εντολή όπως φαίνεται παρακάτω.
ssh-keygen
Από προεπιλογή, τα κλειδιά SSH είναι 2048 bit. Για καλύτερη ασφάλεια, εάν θέλετε να δημιουργήσετε κλειδιά SSH με υψηλότερα bit, χρησιμοποιήστε την ακόλουθη εντολή.
ssh-keygen -b 4096
Εάν η εντολή εκτελεστεί με επιτυχία, τότε θα εμφανιστεί το ακόλουθο μήνυμα στην οθόνη σας.
δημιουργία ζεύγους κλειδιών RSA δημόσιου/ιδιωτικού. Εισαγάγετε το αρχείο στο οποίο θα αποθηκεύσετε το κλειδί (/home/harshit/.ssh/id_rsa):
Τώρα, εάν δεν έχετε υπάρχον ζεύγος κλειδιών SSH στον υπολογιστή σας, απλώς πατήστε Εισαγω
, αλλά εάν έχετε ένα υπάρχον κλειδί SSH, αποθηκεύστε το κλειδί με διαφορετικό όνομα αρχείου όπως φαίνεται παρακάτω.
Εισαγάγετε το αρχείο στο οποίο θα αποθηκεύσετε το κλειδί (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx
Αντικαταστήστε το xxx
στο τέλος του ονόματος αρχείου με ένα κατάλληλο όνομα, όπως φαίνεται παρακάτω και πατήστε Εισαγω
.
Εισαγάγετε το αρχείο στο οποίο θα αποθηκεύσετε το κλειδί (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1
Η επόμενη προτροπή θα σας ζητήσει να εισαγάγετε μια φράση πρόσβασης αυθαίρετου μήκους, θα εξασφαλίσει ασφάλεια δύο επιπέδων στη συσκευή σας.
Εισαγάγετε τη φράση πρόσβασης (κενό για χωρίς φράση πρόσβασης): Εισαγάγετε ξανά την ίδια φράση πρόσβασης:
Η εισαγωγή αυτής της φράσης πρόσβασης θα διασφαλίσει ότι ακόμα κι αν ένα άτομο αποκτήσει πρόσβαση στο ιδιωτικό σας κλειδί, τότε δεν θα μπορεί να έχει πρόσβαση στον απομακρυσμένο διακομιστή σας χωρίς αυτήν τη φράση πρόσβασης.
Μόλις ολοκληρωθεί η όλη διαδικασία, εμφανίζεται το ακόλουθο μήνυμα στην οθόνη σας.
Τα κλειδιά SSH έχουν δημιουργηθεί στο σύστημά σας. Τώρα είναι ώρα να αντιγράψετε το δημόσιο κλειδί στον απομακρυσμένο διακομιστή.
Αντιγραφή του δημόσιου κλειδιού στον απομακρυσμένο διακομιστή Ubuntu
Η πιο εύκολη και γρήγορη μέθοδος αντιγραφής του Δημόσιου κλειδιού στον απομακρυσμένο διακομιστή είναι η χρήση του ssh-copy-id
χρησιμότητα. Αλλά εάν αυτό το βοηθητικό πρόγραμμα δεν είναι διαθέσιμο στο μηχάνημά σας για κάποιο λόγο, μπορείτε επίσης να χρησιμοποιήσετε άλλες μεθόδους που παρέχονται σε αυτήν την ενότητα.
Χρήση του βοηθητικού προγράμματος ssh-copy-id
ο ssh-copy-id
Το βοηθητικό πρόγραμμα είναι από προεπιλογή διαθέσιμο στον υπολογιστή σας Ubuntu, το οποίο αντιγράφει το δημόσιο κλειδί από τη συσκευή σας στον κατάλληλο κατάλογο του απομακρυσμένου μηχανήματος Ubuntu.
Για να αντιγράψετε το δημόσιο κλειδί ssh, απλώς πληκτρολογήστε την εντολή στο τερματικό σας, όπως φαίνεται παρακάτω.
ssh-copy-id username@hostname
Αντικαταστήστε το όνομα χρήστη
και όνομα κεντρικού υπολογιστή
στην παραπάνω εντολή με το όνομα χρήστη και το όνομα κεντρικού υπολογιστή του διακομιστή σας.
Το ακόλουθο μήνυμα θα εμφανιστεί στο τερματικό σας εάν συνδέεστε στον κεντρικό υπολογιστή σας για πρώτη φορά, πληκτρολογήστε Ναί
και πατήστε Εισαγω
.
Η αυθεντικότητα του κεντρικού υπολογιστή" 172.105.XX.XX (172.105.XX.XX)" δεν μπορεί να εξακριβωθεί. Το δακτυλικό αποτύπωμα του κλειδιού ECDSA είναι xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. Είστε βέβαιοι ότι θέλετε να συνεχίσετε τη σύνδεση (ναι/όχι); Ναί
Τώρα το ssh-copy-id
Το βοηθητικό πρόγραμμα θα σαρώσει για το αρχείο με το όνομα id_rsa.pub
που περιέχει το δημόσιο κλειδί SSH. Μόλις ολοκληρωθεί η διαδικασία σάρωσης, θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασης του απομακρυσμένου διακομιστή σας, όπως φαίνεται παρακάτω. Πληκτρολογήστε τον κωδικό πρόσβασης και πατήστε Εισαγω
.
/usr/bin/ssh-copy-id: ΠΛΗΡΟΦΟΡΙΕΣ: προσπάθεια σύνδεσης με τα νέα κλειδιά, για φιλτράρισμα τυχόν εγκατεστημένων /usr/bin/ssh-copy-id: INFO: 1 κλειδί ) παραμένει προς εγκατάσταση -- εάν σας ζητηθεί τώρα, πρέπει να εγκαταστήσετε τα νέα κλειδιά, τον κωδικό πρόσβασης του [email protected]:
Μόλις προστεθεί το κλειδί, το ακόλουθο μήνυμα θα εμφανιστεί στο τερματικό σας ως έξοδος.
Αριθμός κλειδιών που προστέθηκαν: 1 Τώρα δοκιμάστε να συνδεθείτε στο μηχάνημα, με: "ssh '[email protected]'" και ελέγξτε για να βεβαιωθείτε ότι προστέθηκαν μόνο τα κλειδιά που θέλατε.
Σε περίπτωση που έχετε πολλά κλειδιά SSH στον υπολογιστή-πελάτη σας, τότε για να αντιγράψετε το κατάλληλο δημόσιο κλειδί στον απομακρυσμένο υπολογιστή σας, πληκτρολογήστε την εντολή στο μοτίβο που φαίνεται παρακάτω.
ssh-copy-id -i id_rsa_xxx.pub username@host
💡 Συμβουλή
Μην ξεχάσετε να βάλετε .pub στο τέλος του ονόματος αρχείου ενώ πληκτρολογείτε στο τερματικό.
Αντιγραφή του Δημόσιου Κλειδιού με τη μέθοδο σωληνώσεων
Πληκτρολογήστε την ακόλουθη εντολή στο τερματικό if ssh-copy-id
το βοηθητικό πρόγραμμα δεν είναι διαθέσιμο. Αυτή η εντολή μπορεί να φαίνεται λίγο μεγαλύτερη, αλλά λειτουργεί σωστά.
γάτα ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Αντικαθιστώ remote_username
και server_ip_address
με το όνομα χρήστη και τη διεύθυνση IP σας.
Εάν έχετε πολλά κλειδιά SSH διαθέσιμα στον υπολογιστή σας, αντικαταστήστε τα id_rsa.pub
με το δημόσιο αρχείο κλειδιού SSH της επιλογής σας. Για παράδειγμα, id_rsa_client_1.pub
.
Πληκτρολογήστε τον κωδικό πρόσβασης απομακρυσμένου χρήστη όταν σας ζητηθεί και πατήστε Εισαγω
.
Κωδικός πρόσβασης [email protected]:
Μόλις πληκτρολογήσετε τον κωδικό πρόσβασης, το id_rsa.pub
το αρχείο θα αντιγραφεί στο authorized_keys
αρχείο του απομακρυσμένου διακομιστή.
Μη αυτόματη αντιγραφή του δημόσιου κλειδιού
Χρησιμοποιήστε αυτήν τη μέθοδο όταν δεν έχετε πρόσβαση στο απομακρυσμένο σύστημά σας μέσω ελέγχου ταυτότητας με κωδικό πρόσβασης.
Ανοιξε το id_rsa.pub
αρχείο χρησιμοποιώντας το Γάτα
εντολή στο τερματικό. Μπορείτε επίσης να το ανοίξετε από ένα πρόγραμμα επεξεργασίας κειμένου, ο σκοπός είναι απλώς να αντιγράψετε το περιεχόμενο του αρχείου.
γάτα ~/.ssh/id_rsa.pub
Το περιεχόμενο του αρχείου θα μοιάζει όπως φαίνεται παρακάτω.
ssh-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH το_όνομά @ your_PC
Τώρα, συνδεθείτε στον απομακρυσμένο διακομιστή σας και επικολλήστε το αντιγραμμένο περιεχόμενο χρησιμοποιώντας την εντολή που φαίνεται παρακάτω. Αντικαταστήστε το παραπάνω_συμβολοσειρά
με το αντιγραμμένο περιεχόμενο.
echo above_string >> ~/.ssh/authorized_keys
Διαμόρφωση πολλαπλών κλειδιών SSH (Προαιρετικό)
Αυτό το βήμα είναι για άτομα που έχουν ρυθμίσεις πολλαπλών κλειδιών SSH στον υπολογιστή-πελάτη τους. Παραλείψτε αυτήν την ενότητα εάν έχετε μόνο μία ρύθμιση κλειδιού SSH.
Για να διαχειριστούμε πολλά κλειδιά SSH, θα δημιουργήσουμε τώρα ένα config
αρχείο μέσα στο .ssh
κατάλογο χρησιμοποιώντας την εντολή που φαίνεται παρακάτω.
cd ~/.ssh vim config
Τύπος Εγώ
για να εισέλθετε σε λειτουργία εντολών και να πληκτρολογήσετε τις λεπτομέρειες πολλών κεντρικών υπολογιστών, όπως φαίνεται στο ακόλουθο παράδειγμα:
Host remote-ubuntu-server HostName 172.105.XX.XX User root IdentityFile ~/.ssh/id_rsa_client_1 Host remote-ubuntu-server HostName 172.106.XX.XX Ρίζα χρήστη Identity_asclient_rs
Ομοίως, πληκτρολογήστε τα στοιχεία άλλων απομακρυσμένων διακομιστών και τα κλειδιά τους. Μόλις ολοκληρωθεί η διαδικασία πατήστε Esc
και :wq
για αποθήκευση και έξοδο.
Τώρα οι επόμενες διαδικασίες είναι ίδιες και για την ύπαρξη ενός ή πολλαπλών κλειδιών SSH στον υπολογιστή-πελάτη.
Συνδεθείτε στον απομακρυσμένο διακομιστή σας χρησιμοποιώντας κλειδιά SSH
Μόλις ολοκληρωθεί η διαδικασία αντιγραφής του Δημοσίου κλειδιού σας, συνδεθείτε στον απομακρυσμένο διακομιστή σας πληκτρολογώντας την εντολή όπως φαίνεται παρακάτω.
ssh remote_username@server_ip_address
Εάν παρείχατε τη φράση πρόσβασης κατά τη δημιουργία του ζεύγους κλειδιών, θα σας ζητηθεί να την εισαγάγετε. Μια νέα περίοδος λειτουργίας θα ανοίξει μετά την ολοκλήρωση της διαδικασίας ελέγχου ταυτότητας.
Έχετε πλέον διαμορφώσει με επιτυχία τον έλεγχο ταυτότητας βάσει κλειδιών SSH στον απομακρυσμένο διακομιστή σας. Ωστόσο, ο έλεγχος ταυτότητας βάσει κωδικού πρόσβασης εξακολουθεί να είναι ενεργός στον διακομιστή σας, αυτό σημαίνει ότι ο διακομιστής σας από απόσταση εξακολουθεί να είναι επιρρεπής σε επιθέσεις ωμής βίας.
Τώρα λοιπόν θα απενεργοποιήσουμε εντελώς τον μηχανισμό σύνδεσης βάσει κωδικού πρόσβασης από τον απομακρυσμένο διακομιστή μας.
Απενεργοποιήστε τον μηχανισμό σύνδεσης βάσει κωδικού πρόσβασης
Πριν κάνετε οποιεσδήποτε αλλαγές, βεβαιωθείτε ότι ο χρήστης root ή οποιοσδήποτε χρήστης με δυνατότητα sudo για τον απομακρυσμένο λογαριασμό σας έχει πρόσβαση στον διακομιστή σας χρησιμοποιώντας το σύστημα ελέγχου ταυτότητας που βασίζεται σε κλειδί SSH. Αυτό το βήμα θα κλειδώσει ή θα απενεργοποιήσει εντελώς τη σύνδεση με κωδικό πρόσβασης, επομένως είναι σημαντικό τουλάχιστον ένα δικαιώματα root χρήστη να έχει πρόσβαση στον διακομιστή μέσω του κλειδιού SSH.
Συνδεθείτε στον απομακρυσμένο διακομιστή Ubuntu και πληκτρολογήστε την εντολή που φαίνεται παρακάτω.
sudo vim /etc/ssh/sshd_config
- Τύπος
Esc
,/
και πληκτρολογήστε "PasswordAuthentication" και πατήστεεισαγω
. - Τώρα πατήστε
Εγώ
και αλλάξτε την τιμή του «PasswordAuthentication yes» σε «PasswordAuthentication no». - Τύπος
Esc
και επαναλάβετε την παραπάνω διαδικασία για να βρείτε τα «ChallengeResponseAuthentication», «UsePAM» και αλλάξτε τις τιμές τους σεόχι
επισης.
PasswordAuthentication όχι ChallengeResponseAuthentication όχι UsePAM αρ
Μόλις οριστούν όλες οι τιμές σε όχι
, πατήστε Esc
, τύπος :wq
και χτυπήστε εισαγω
.
Για να ενεργοποιήσετε όλες τις αλλαγές, επανεκκινήστε το ssh
υπηρεσία χρησιμοποιώντας την παρακάτω εντολή.
sudo systemctl επανεκκίνηση ssh
Τώρα ανοίξτε ένα νέο παράθυρο τερματικού στον υπολογιστή σας και βεβαιωθείτε ότι ο έλεγχος ταυτότητας με κλειδί SSH λειτουργεί σωστά πριν κλείσετε την τρέχουσα περίοδο λειτουργίας.
Μόλις ολοκληρωθεί η διαδικασία επαλήθευσης, κλείστε όλες τις συνεδρίες που εκτελούνται.
Έχουμε πλέον διαμορφώσει με επιτυχία τον έλεγχο ταυτότητας που βασίζεται σε κλειδί SSH στον διακομιστή μας Ubuntu 20.04. Τώρα κανείς δεν μπορεί να συνδεθεί στον διακομιστή σας χρησιμοποιώντας έναν μηχανισμό σύνδεσης με κωδικό πρόσβασης.