Τι είναι ένα δημόσιο κλειδί SSH;

Ένα δημόσιο κλειδί SSH είναι το ένα από τα δύο μέρη ενός κρυπτογραφικού ζεύγους κλειδιών που χρησιμοποιείται για ασφαλή αυθεντικοποίηση μέσω του πρωτοκόλλου SSH (Secure Shell). Όταν δημιουργείτε ένα ζεύγος κλειδιών SSH, λαμβάνετε ένα ιδιωτικό κλειδί (που παραμένει μυστικό στο μηχάνημά σας) και ένα δημόσιο κλειδί (που κοινοποιείται στους διακομιστές στους οποίους θέλετε να έχετε πρόσβαση). Ο διακομιστής χρησιμοποιεί το δημόσιο κλειδί σας για να επαληθεύσει την ταυτότητά σας χωρίς να μεταδίδεται κωδικός πρόσβασης.

Τα δημόσια κλειδιά SSH αποθηκεύονται ως μία γραμμή κειμένου σε μορφή OpenSSH, που περιέχει τρία μέρη: τον τύπο κλειδιού (όπως ssh-rsa ή ssh-ed25519), τα δεδομένα κλειδιού κωδικοποιημένα σε Base64, και ένα προαιρετικό σχόλιο (συνήθως user@hostname). Μέσα στα δεδομένα Base64 είναι ενσωματωμένες δομημένες δυαδικές πληροφορίες που περιλαμβάνουν τις παραμέτρους αλγορίθμου και το πραγματικό κρυπτογραφικό υλικό.

Τα fingerprints είναι σύντομα, αναγνώσιμα από τον άνθρωπο hashes των δεδομένων κλειδιού. Διευκολύνουν την επαλήθευση και σύγκριση κλειδιών χωρίς να χρειάζεται να διαβάσετε ολόκληρο το string Base64. Οι δύο πιο συνηθισμένες μορφές fingerprint είναι SHA-256 (η σύγχρονη προεπιλογή) και MD5 (η παλαιότερη μορφή με ζεύγη hex διαχωρισμένα με άνω-κάτω τελεία).

Περιγραφή εργαλείου

Αυτό το εργαλείο αναλύει δημόσια κλειδιά SSH σε μορφή OpenSSH και εξάγει όλα τα σημαντικά μεταδεδομένα. Επικολλήστε το δημόσιο κλειδί σας και δείτε άμεσα τον τύπο κλειδιού, τον αλγόριθμο, το μέγεθος κλειδιού σε bits, το σχόλιο, καθώς και τα fingerprints SHA-256 και MD5 — αντίστοιχα με την έξοδο που θα λαμβάνατε από την εντολή ssh-keygen -l.

Παραδείγματα

Είσοδος:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptop

Έξοδος:

Πεδίο Τιμή
Τύπος κλειδιού ssh-ed25519
Αλγόριθμος Ed25519
Μέγεθος κλειδιού 256 bits
Σχόλιο user@laptop
Fingerprint SHA-256 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
Fingerprint MD5 MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

Δυνατότητες

  • Υποστηρίζει τύπους κλειδιών RSA, Ed25519, ECDSA (P-256, P-384, P-521), DSA και Security Key (FIDO)
  • Υπολογίζει fingerprints SHA-256 και MD5 σε τυπική μορφή OpenSSH
  • Εξάγει το μέγεθος κλειδιού σε bits απευθείας από τα δυαδικά δεδομένα κλειδιού
  • Επικυρώνει τη δομή κλειδιού, συμπεριλαμβανομένης της ακεραιότητας Base64 και της συνέπειας του ενσωματωμένου τύπου
  • Αναλύει το προαιρετικό πεδίο σχολίου από τη γραμμή δημόσιου κλειδιού

Πώς λειτουργεί

Το εργαλείο χωρίζει την είσοδο σε τρία μέρη: τύπο κλειδιού, δεδομένα Base64 και σχόλιο. Στη συνέχεια αποκωδικοποιεί τα δεδομένα Base64 σε δυαδική μορφή και διαβάζει την εσωτερική δομή χρησιμοποιώντας τη μορφή SSH με πρόθεμα μήκους, όπου κάθε πεδίο ξεκινά με ένα μήκος 4 bytes big-endian ακολουθούμενο από τα δεδομένα πεδίου. Το μέγεθος κλειδιού προσδιορίζεται από τις παραμέτρους που είναι ειδικές για κάθε αλγόριθμο — για RSA είναι το μήκος σε bits του modulus n, για DSA είναι ο πρώτος αριθμός p, και για κλειδιά ελλειπτικής καμπύλης προκύπτει από το όνομα της καμπύλης. Τα fingerprints υπολογίζονται με κατακερματισμό των ακατέργαστων δυαδικών δεδομένων κλειδιού με SHA-256 και MD5.

Υποστηριζόμενοι τύποι κλειδιών

Αναγνωριστικό τύπου Αλγόριθμος
ssh-rsa RSA
ssh-ed25519 Ed25519
ecdsa-sha2-nistp256 ECDSA (P-256)
ecdsa-sha2-nistp384 ECDSA (P-384)
ecdsa-sha2-nistp521 ECDSA (P-521)
ssh-dss DSA
sk-ssh-ed25519@openssh.com Ed25519-SK (Security Key)
sk-ecdsa-sha2-nistp256@openssh.com ECDSA-SK (Security Key)

Περιπτώσεις χρήσης

  • Επαλήθευση fingerprints κλειδιών — Επιβεβαιώστε ότι ένα δημόσιο κλειδί αντιστοιχεί στο αναμενόμενο fingerprint πριν το προσθέσετε στο authorized_keys ή σε μια υπηρεσία φιλοξενίας Git
  • Έλεγχος πρόσβασης διακομιστή — Προσδιορίστε γρήγορα τον αλγόριθμο και το μέγεθος κλειδιών στο αρχείο authorized_keys για να εντοπίσετε αδύναμα ή παρωχημένα κλειδιά
  • Αντιμετώπιση προβλημάτων SSH — Ελέγξτε αν ένα κλειδί έχει τη σωστή μορφή, χρησιμοποιεί τον αναμενόμενο αλγόριθμο και διαθέτει έγκυρη δομή

Συχνές ερωτήσεις

Πού βρίσκω το δημόσιο κλειδί SSH μου; Στα περισσότερα συστήματα αποθηκεύεται στη διαδρομή ~/.ssh/id_ed25519.pub, ~/.ssh/id_rsa.pub ή σε παρόμοια διαδρομή ανάλογα με τον αλγόριθμο. Μπορείτε επίσης να εκτελέσετε ssh-add -L για να εμφανίσετε τα κλειδιά που είναι φορτωμένα στον SSH agent σας.

Είναι ασφαλές να κοινοποιώ το δημόσιο κλειδί μου; Ναι. Το δημόσιο κλειδί είναι σχεδιασμένο για να κοινοποιείται. Δεν μπορεί να χρησιμοποιηθεί για την εξαγωγή του ιδιωτικού κλειδιού ή για αυθεντικοποίηση εκ μέρους σας.

Γιατί τα fingerprints SHA-256 και MD5 φαίνονται διαφορετικά; Τα fingerprints SHA-256 είναι κωδικοποιημένα σε Base64 και φέρουν το πρόθεμα SHA256:, ενώ τα fingerprints MD5 χρησιμοποιούν ζεύγη δεκαεξαδικών αριθμών διαχωρισμένα με άνω-κάτω τελεία και φέρουν το πρόθεμα MD5:. Το SHA-256 είναι η προεπιλογή στις σύγχρονες εκδόσεις OpenSSH.