Πώς να χρησιμοποιείτε κλειδιά SSH για αυθεντικοποίηση
Γιατί κλειδιά;
Η αυθεντικοποίηση με δημόσιο κλειδί βασίζεται σε ένα ζεύγος κλειδιών για κάθε χρήστη, το ζεύγος δημόσιου και ιδιωτικού κλειδιού. Το δημόσιο κλειδί που δημιουργείται στη μηχανή του SSH client αντιγράφεται στο αρχείο authorized_keys του SSH server, και έτσι ο SSH server θεωρεί το κλειδί έμπιστο. Κατά τη σύνδεση ο server στέλνει μια πρόκληση που μόνο ο κάτοχος του αντίστοιχου ιδιωτικού κλειδιού μπορεί να υπογράψει. Ο κωδικός δεν μεταδίδεται ποτέ.
Πώς να ρυθμίσετε αυθεντικοποίηση SSH με κλειδιά
Δημιουργήστε τον φάκελο των κλειδιών.
mkdir -p ~/.ssh
Ασφαλίστε τον φάκελο .ssh, ώστε να έχει πρόσβαση μόνο ο χρήστης του SSH.
chmod 700 ~/.ssh
Δημιουργήστε το ζεύγος κλειδιών.
ssh-keygen -t rsa
Ακολουθήστε τα μηνύματα στην οθόνη για να δημιουργήσετε τα κλειδιά διαδραστικά. Δώστε έναν κωδικό (προαιρετικά) για την προστασία του ιδιωτικού κλειδιού. Αν ορίσετε κωδικό, θα σας ζητείται σε κάθε συνεδρία SSH.
Αντιγράψτε το δημόσιο κλειδί στο authorized_keys του server.
Μπορείτε είτε να αντιγράψετε το κείμενο από το αρχείο ~/.ssh/id_rsa.pub και να το επικολλήσετε στο αρχείο ~/.ssh/authorized_keys του server, είτε να χρησιμοποιήσετε το εργαλείο ssh-copy-id με την παρακάτω μορφή για τη μεταφορά του κλειδιού.
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
Ο διακόπτης -i δίνει το αρχείο ταυτότητας, δηλαδή το δημόσιο κλειδί.
Απενεργοποιήστε την αυθεντικοποίηση με κωδικό και ενεργοποιήστε την αυθεντικοποίηση με δημόσιο κλειδί.
Συνδεθείτε στον server ως root, ανοίξτε το αρχείο /etc/ssh/sshd_config με οποιονδήποτε επεξεργαστή κειμένου και βεβαιωθείτε ότι οι οδηγίες έχουν τις παρακάτω τιμές.
PubkeyAuthentication yes
PasswordAuthentication no
Αν το κλειδί είναι για τον χρήστη root, ορίστε PermitRootLogin prohibit-password, ώστε ο root να συνδέεται με κλειδί αλλά ποτέ με κωδικό. Για νέα κλειδιά προτιμήστε ssh-keygen -t ed25519.
PermitRootLogin prohibit-password
Επανεκκινήστε την υπηρεσία SSH στον server και δοκιμάστε τη σύνδεση SSH από τον client. Αν αντιμετωπίσετε προβλήματα σύνδεσης, χρησιμοποιήστε τον διακόπτη -vv στην εντολή ssh.
ssh -vv root@yourhost.com
Συμβουλές
Η ιδιοκτησία και τα δικαιώματα του φακέλου πρέπει να ανήκουν στον συγκεκριμένο χρήστη: chmod 600 ~/.ssh/id_rsa
Από τις συχνές ερωτήσεις της EuroVPS.
Περισσότερα στην κατηγορία «Οδηγοί»Ο επόμενος συνεργάτης σας στην υποδομή
Έχετε ακόμη
μια ερώτηση;
Πείτε μας τι προσπαθείτε να κάνετε. Ένας μηχανικός θα το διαβάσει και θα απαντήσει.
+357 222 32280
Ας ξεκινήσουμε από την υποδομή σας.
Λίγο πλαίσιο μάς βοηθά να ξεκινήσουμε τη σωστή συζήτηση.
