Έχω έναν διακομιστή Ubuntu στο Amazon EC2, τον οποίο χρησιμοποιώ για την ανάπτυξη, και σήμερα εκκαθάρισα βλακωδώς τα πάντα από το αρχείο ~/.ssh/authorized_keys
. Ευτυχώς έχω ένα SSH ανοιχτό, οπότε είμαι ακόμα συνδεδεμένος και μπορώ να διορθώσω το αρχείο, αλλά όταν προσπαθώ να βάλω πίσω το αρχείο κλειδιών μου, δεν λειτουργεί. Εξακολουθώ να λαμβάνω απόρριψη δικαιωμάτων από τον διακομιστή στο τοπικό μου μηχάνημα.
Το authorized_keys
έχει δικαιώματα 600. Δοκίμασα να επισυνάψω το κλειδί SSH με ssh-rsa και να αφήσω το ssh-rsa απενεργοποιημένο. Δοκίμασα επίσης να κάνω το κλειδί SSH όλο μία γραμμή, αλλά ούτε αυτό λειτούργησε.
Υπάρχει κάτι άλλο που πρέπει να κάνω, όπως να ξαναφορτώσω το αρχείο με κάποιο τρόπο;
Δεν θα πρέπει ποτέ να αποθηκεύετε το αρχείο με τα περιεχόμενά του να αρχίζουν με -----BEGIN RSA PRIVATE KEY-----
στον διακομιστή, αυτό είναι το ιδιωτικό κλειδί σας. Αντ' αυτού, πρέπει να τοποθετήσετε το δημόσιο κλειδί στο αρχείο ~/.ssh/authorized_keys
.
Αυτό το δημόσιο κλειδί έχει την επέκταση .pub
όταν δημιουργείται με τη χρήση του ssh-keygen
και τα περιεχόμενά του αρχίζουν με ssh-rsa AAAAB3
. (Η δυαδική μορφή περιγράφεται στις απαντήσεις στο αυτό το ερώτημα).
Τα δικαιώματα του αρχείου ~/.ssh
στον διακομιστή πρέπει να είναι 700. Το αρχείο ~/.ssh/authorized_keys
(στο διακομιστή) υποτίθεται ότι πρέπει να έχει λειτουργία 600. Τα δικαιώματα του (ιδιωτικού) κλειδιού στην πλευρά του πελάτη θα πρέπει να είναι 600.
Εάν το ιδιωτικό κλειδί δεν ήταν προστατευμένο με κωδικό πρόσβασης και το τοποθετήσατε στον διακομιστή, σας συνιστώ να δημιουργήσετε ένα νέο:
ssh-keygen -t rsa
Μπορείτε να το παραλείψετε αυτό αν είστε απολύτως βέβαιοι ότι κανείς δεν μπορεί να ανακτήσει το διαγραμμένο ιδιωτικό κλειδί από τον διακομιστή.
Αν αυτό δεν σας βοηθάει, εκτελέστε το ssh
με επιλογές για περισσότερη προφορικότητα:
ssh -vvv [email protected]
Από την πλευρά του διακομιστή, μπορείτε να ανατρέξετε στο /var/log/auth.log
για λεπτομέρειες.
Αν έχετε έλεγχο ταυτότητας με βάση τη σύνδεση, τότε χρησιμοποιήστε το ssh-copy-id
για να προσαρτήσετε τα δημόσια κλειδιά σας στον απομακρυσμένο διακομιστή.
ssh-copy-id user@host
local> scp .ssh/id_dsa.pub remote.com:
local> ssh remote.com
remote> cat id_dsa.pub >> .ssh/authorized_keys
remote> rm id_dsa.pub
remote> exit