Εισαγωγή
Αυτός ο οδηγός εξηγεί πώς να δημιουργήσετε κλειδιά SSH, να προσθέσετε το δημόσιο κλειδί στον διακομιστή CentOS 8 και να ρυθμίσετε τις παραμέτρους sshdγια σύνδεση χωρίς κωδικό πρόσβασης.
Βήμα 1 - Δημιουργία ζεύγους κλειδιών SSH
Πρώτα πρέπει να δημιουργήσετε ένα ζεύγος κλειδιών SSH στον υπολογιστή σας, εάν δεν το έχετε ήδη.
Στο τερματικό στον τοπικό υπολογιστή σας, εκτελέστε:
ssh-keygen
Αφού εκτελέσετε αυτήν την εντολή, θα πρέπει να δείτε την ακόλουθη γραμμή εντολών:
Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):
Πατήστε ENTERγια να αποθηκεύσετε αυτό το ζεύγος κλειδιών SSH στον ./sshυποκατάλογο στον αρχικό σας κατάλογο ή καθορίστε μια εναλλακτική διαδρομή εάν θέλετε.
Μετά από αυτό θα πρέπει να δείτε την ακόλουθη έξοδο:
Output
Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
your_fingerprint_key username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
| ..o |
| E o= . |
| o. o |
| .. |
| ..S |
| o o. |
| =o.+. |
|. =++.. |
|o=++. |
+-----------------+
Στο παραπάνω παράδειγμα your_homeείναι ο αρχικός κατάλογος του υπολογιστή σας
Έχετε δημιουργήσει ένα ζεύγος δημόσιου και ιδιωτικού κλειδιού. Θα αντιγράψουμε το δημόσιο κλειδί στον διακομιστή. Για να δείτε το δημόσιο κλειδί σας:
cat ~/.ssh/id_rsa.pub
Θα δείτε πολύ μεγάλη συμβολοσειρά που ξεκινά με ssh-rsa .
Βήμα 2: Προσθήκη κλειδιού SSH στον διακομιστή CentOS
SSH στον διακομιστή σας και δημιουργήστε τον .sshκατάλογο, εάν δεν υπάρχει ήδη:
mkdir -p ~/.ssh
Προσθέστε το δημόσιο κλειδί από το Βήμα 1 στο ~/.ssh/authorized_keys. Αντικαταστήστε public_key_stringμε τα περιεχόμενα id_rsa.pubαπό το Βήμα 1:
echo public_key_string >> ~/.ssh/authorized_keys
Αποσυνδεθείτε από τον διακομιστή και, στη συνέχεια, συνδεθείτε ξανά:
ssh root@your_server_ip
Εάν συνδέεστε με αυτόν τον τρόπο στον διακομιστή σας για πρώτη φορά, θα δείτε το ακόλουθο μήνυμα:
Output
The authenticity of host 'your_server_ip' can't be established.
ECDSA key fingerprint is your_finderprint_id.
Are you sure you want to continue connecting (yes/no)?
Εάν δείτε αυτό το μήνυμα, απαντήστε yesκαι πατήστε ENTER
Θα σας ζητηθεί επίσης ο κωδικός πρόσβασης root του διακομιστή σας. Θα καλύψουμε πώς να το απενεργοποιήσετε στο επόμενο βήμα.
Βήμα 3: Απενεργοποίηση ελέγχου ταυτότητας με κωδικό πρόσβασης
Ο έλεγχος ταυτότητας βάσει κλειδιού SSH έχει ρυθμιστεί, αλλά ο έλεγχος ταυτότητας με κωδικό πρόσβασης είναι ακόμα ενεργός. Για να το αλλάξετε αυτό, πρέπει να κάνετε κάποιες αλλαγές στο αρχείο sshd_configπου βρίσκεται στον /etc/sshκατάλογο. Μπορείτε να ανοίξετε αυτό το αρχείο με αυτήν την εντολή:
sudo vi /etc/ssh/sshd_config
Στο αρχείο που πρέπει να βρείτε και να αλλάξετε πολλές γραμμές Θα πρέπει να οριστεί η άδεια Root Login yes
...
PermitRootLogin yes
...
Ο έλεγχος ταυτότητας με κωδικό πρόσβασης πρέπει να οριστεί σε no
...
PasswordAuthentication no
...
Ο έλεγχος ταυτότητας απόκρισης πρόκλησης θα πρέπει να οριστεί σε no
...
ChallengeResponseAuthentication no
...
Η χρήση της μεθόδου ελέγχου ταυτότητας κωδικού πρόσβασης (PAM) πρέπει να οριστεί σε yes
...
UsePAM yes
...
Αφού ολοκληρώσετε τις αλλαγές, πατήστε ESCκαι μετά :WQ. Για να τεθεί σε ισχύ αυτή η αλλαγή, επανεκκινήστε την sshdυπηρεσία:
sudo systemctl restart sshd.service
Πριν κλείσετε το τερματικό σας όπου είστε συνδεδεμένοι στον διακομιστή, ανοίξτε το νέο παράθυρο τερματικού και εκτελέστε αυτήν την εντολή
ssh root@your_server_ip
Τώρα θα πρέπει να είστε συνδεδεμένοι στον διακομιστή σας χωρίς κωδικό πρόσβασης και μόνο με το κλειδί SSH. Αυτό σημαίνει ότι ο έλεγχος ταυτότητας που βασίζεται σε SSH έχει ρυθμιστεί με επιτυχία και ότι ο έλεγχος ταυτότητας με κωδικό πρόσβασης είναι απενεργοποιημένος.