Ακολουθήστε αυτόν τον αναλυτικό οδηγό για να ρυθμίσετε τις παραμέτρους ελέγχου ταυτότητας βάσει κλειδιού SSH στον διακομιστή Ubuntu σας. Συνδεθείτε με ασφάλεια χωρίς κωδικό πρόσβασης και προαιρετικά απενεργοποιήστε εντελώς τον έλεγχο ταυτότητας με κωδικό πρόσβασης.
Ακολουθήστε προσεκτικά κάθε βήμα για να ρυθμίσετε τον έλεγχο ταυτότητας βάσει κλειδιού SSH στον διακομιστή Ubuntu σας.
Εκτελέστε την ακόλουθη εντολή στον τοπικό σας υπολογιστή για να δημιουργήσετε ένα ζεύγος κλειδιών RSA (οι τρέχουσες εκδόσεις του ssh-keygen έχουν προεπιλεγμένη τιμή 3072 bit — χρησιμοποιήστε -b 4096 για ένα ισχυρότερο κλειδί):
$ ssh-keygenΌταν σας ζητηθεί μια διαδρομή αρχείου, πατήστε Enter για να αποδεχτείτε την προεπιλογή ( ~/.ssh/id_rsa ). Προαιρετικά, ορίστε μια φράση πρόσβασης για ένα επιπλέον επίπεδο ασφάλειας.
Δημιουργούνται δύο αρχεία: ~/.ssh/id_rsa (ιδιωτικό κλειδί — διατηρείται μυστικό) και ~/.ssh/id_rsa.pub (δημόσιο κλειδί — αυτό μεταφέρεται στον διακομιστή).
Μέθοδος 1 — ssh-copy-id (συνιστάται):
$ ssh-copy-id username@remote_hostΕισαγάγετε τον κωδικό πρόσβασής σας όταν σας ζητηθεί. Το δημόσιο κλειδί θα προστεθεί στο ~/.ssh/authorized_keys στον διακομιστή.
Μέθοδος 2 — μέσω αγωγού SSH:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"Μέθοδος 3 — χειροκίνητα: Εμφανίστε το δημόσιο κλειδί σας με cat ~/.ssh/id_rsa.pub και, στη συνέχεια, προσαρτήστε την έξοδό του στο ~/.ssh/authorized_keys στον απομακρυσμένο διακομιστή.
Ελέγξτε ότι ο έλεγχος ταυτότητας βάσει κλειδιού λειτουργεί, συνδέοντάς τον στον διακομιστή σας:
$ ssh username@remote_hostΕάν ορίσετε μια φράση πρόσβασης στο βήμα 1, θα σας ζητηθεί να την εισαγάγετε. Εάν δεν το κάνετε, θα συνδεθείτε αμέσως χωρίς να σας ζητηθεί κωδικός πρόσβασης.
Μόλις επιβεβαιώσετε ότι η σύνδεση με βάση το κλειδί λειτουργεί, μπορείτε να απενεργοποιήσετε τον έλεγχο ταυτότητας με κωδικό πρόσβασης για να ενισχύσετε τον διακομιστή έναντι επιθέσεων βίας. Ανοίξτε τη διαμόρφωση του δαίμονα SSH:
sudo nano /etc/ssh/sshd_configΒρείτε PasswordAuthentication , αποσχολιάστε τη γραμμή εάν χρειάζεται και ορίστε την σε no :
PasswordAuthentication noΣτις τρέχουσες εκδόσεις του Ubuntu, sshd_config τελειώνει με μια γραμμή Include /etc/ssh/sshd_config.d/*.conf και ένα αρχείο σε αυτόν τον κατάλογο μπορεί να αντικαταστήσει αυτό που μόλις ορίσατε. Εάν η αλλαγή σας δεν τεθεί σε ισχύ, ελέγξτε για μια PasswordAuthentication yes στο /etc/ssh/sshd_config.d/ και επεξεργαστείτε την εκεί.
Αποθηκεύστε το αρχείο ( Ctrl+X , έπειτα Y και μετά Enter ) και επανεκκινήστε το SSH:
$ sudo systemctl restart sshΑνοίξτε ένα νέο τερματικό και επαληθεύστε ότι μπορείτε ακόμα να συνδεθείτε πριν κλείσετε την τρέχουσα συνεδρία σας.
Συνήθεις ερωτήσεις σχετικά με τη ρύθμιση ελέγχου ταυτότητας κλειδιού SSH στο Ubuntu.