Τι να κάνετε όταν ο έλεγχος ταυτότητας βάσει κλειδιού δεν λειτουργεί μετά το ssh-copy-id

Πρόσφατα παρείχα έναν εικονικό ιδιωτικό διακομιστή Ubuntu (VPS) στο Vultr. Είμαι εν μέρει με τον CentOS, αλλά το έργο που έκανα στο προτεινόμενο Ubuntu.

Για να ρυθμίσετε τον έλεγχο ταυτότητας βάσει κλειδιών από το φορητό υπολογιστή μου στο διακομιστή,

  • Δημιούργησα ένα νέο πληκτρολόγιο SSH (ονομάζεται "ubuntu") στο Mac μου χρησιμοποιώντας την εντολή: ssh-keygen -t rsa -b 4096
  • Στη συνέχεια χρησιμοποίησα το ssh-copy-idβοηθητικό πρόγραμμα για να αντιγράψω το δημόσιο κλειδί μου στο authorized_keysαρχείο στο Vultr VPS μου:ssh-copy-id -i .ssh/ubuntu [email protected]

Όπως περίμενα, το βοηθητικό πρόγραμμα ζήτησε τον κωδικό πρόσβασης VPS για να ολοκληρωθεί η μεταφορά του δημόσιου κλειδιού. Όταν όλα έγιναν, προσπάθησα να συνδεθώ στο VPS μου.

Θα έπρεπε να με αφήσει χωρίς να απαιτείται κωδικός πρόσβασης:

ssh -i .ssh/ubuntu [email protected]

Αλλά συνεχίζω να μου ζητείται κωδικός πρόσβασης. ;

  • Έλεγξα το authorized_keysαρχείο μου στο VPS για να βεβαιωθώ ότι το δημόσιο κλειδί μου είχε αντιγραφεί σωστά. Ελεγχος. ??
  • Διαβεβαίωσα ότι το αρχείο ήταν ανάγνωσης-εγγραφής μόνο για τον εαυτό μου και κανέναν άλλο. Ελεγχος. ??
  • Διαβεβαίωσα ότι οι ακόλουθες επιλογές ήταν ενεργοποιημένες /etc/ssh/sshd_config: PubkeyAuthentication yesκαι AuthorizedKeysFile .ssh/authorized_keys. Ελεγχος. ??

Ωστόσο, συνέχισα να μου ζητείται κωδικός πρόσβασης κατά τη σύνδεση από το φορητό υπολογιστή μου.

Μετά από λίγα λεπτά στο StackOverflow, έμαθα για τους κρυπτογραφημένους οικιακούς καταλόγους, οι οποίοι είναι προεπιλεγμένοι σε ορισμένα περιβάλλοντα, συμπεριλαμβανομένου του Ubuntu.

Οι κρυπτογραφημένοι οικιακοί κατάλογοι δεν αποκρυπτογραφούνται έως ότου επιτευχθεί η αρχική σύνδεση. Ωστόσο, το authorized_keysαρχείο μου είναι αποθηκευμένο στον αρχικό μου κατάλογο.

Επομένως, η πρώτη μου προσπάθεια σύνδεσης θα απαιτήσει έναν κωδικό πρόσβασης. Οι επακόλουθες συνδέσεις θα πετύχουν χωρίς κωδικό πρόσβασης, καθώς η υπηρεσία SSH θα μπορεί τότε να διαβάσει το authorized_keysαρχείο μου στον αποκρυπτογραφημένο αρχικό κατάλογό μου.

Για να το ξεπεράσω, δημιούργησα έναν κατάλογο που πήρε το όνομά του από το όνομα χρήστη μου aritdevεκτός του οικείου καταλόγου (επέλεξα /etc/) και του έδωσα πλήρη δικαιώματα για τον εαυτό μου, αλλά δικαιώματα ανάγνωσης-εκτέλεσης για όλους τους άλλους. Στη συνέχεια, μετακίνησα το authorized_keysαρχείο μου /etc/aritdev/. Στη συνέχεια, ενημέρωσα την AuthorizedKeysFileπαράμετρο σε /etc/ssh/sshd_config:

AuthorizedKeysFile /etc/%u/authorized_keys

Τέλος, επανεκκίνηση της υπηρεσίας SSH. Για δοκιμή, αποσυνδέθηκα από το VPS μου και μετά προσπάθησα να συνδεθώ ξανά. BOOM - λειτούργησε! ??

Ποια προβλήματα σχετίζονται με τον έλεγχο ταυτότητας διακομιστή; Πώς τα λύσατε; Παρακαλώ μοιραστείτε παρακάτω! ??