Τι είναι ένα ζεύγος κλειδιών SSH;

Ένα ζεύγος κλειδιών SSH είναι ένα σύνολο δύο κρυπτογραφικών κλειδιών που χρησιμοποιούνται για τον έλεγχο ταυτότητας ενός χρήστη σε έναν απομακρυσμένο διακομιστή χωρίς κωδικό πρόσβασης. Το ζεύγος αποτελείται από ένα ιδιωτικό κλειδί, που διατηρείται μυστικό στη συσκευή του χρήστη, και ένα δημόσιο κλειδί, που τοποθετείται στον απομακρυσμένο διακομιστή. Κατά τη σύνδεση, ο διακομιστής προκαλεί τον πελάτη να αποδείξει την κατοχή του ιδιωτικού κλειδιού — χωρίς να μεταδίδει ποτέ το ίδιο το ιδιωτικό κλειδί. Αυτή η ασύμμετρη προσέγγιση είναι σημαντικά ασφαλέστερη από τον έλεγχο ταυτότητας βάσει κωδικού πρόσβασης, επειδή δεν υπάρχει κοινό μυστικό που μπορεί να αναχθεί ή να παραβιαστεί με brute-force.

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

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

Ο Γεννήτρια Ζεύγους Κλειδιών SSH δημιουργεί κρυπτογραφικά ασφαλή ζεύγη κλειδιών SSH Ed25519 ή RSA απευθείας στο πρόγραμμα περιήγησής σας χρησιμοποιώντας το Web Crypto API. Κανένα δεδομένο δεν αποστέλλεται σε διακομιστή — όλο το κλειδί δημιουργείται τοπικά στη συσκευή σας. Μπορείτε προαιρετικά να προσθέσετε ένα σχόλιο (συνήθως user@hostname) για να βοηθήσετε στον εντοπισμό του κλειδιού αργότερα. Τα δημιουργηθέντα δημόσια και ιδιωτικά κλειδιά μπορούν να αντιγραφούν στο πρόχειρο ή να ληφθούν ως αρχεία, έτοιμα για χρήση με ssh-copy-id ή οποιονδήποτε πελάτη SSH.

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

Δημόσιο κλειδί Ed25519

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostname

Δημόσιο κλειδί RSA (4096-bit)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostname

Ιδιωτικό κλειδί (μορφή OpenSSH)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

Χαρακτηριστικά

  • Υποστήριξη Ed25519 και RSA: Επιλέξτε μεταξύ ενός σύγχρονου αλγόριθμου ελλειπτικής καμπύλης ή του κλασικού αλγόριθμου RSA
  • Επιλογές μεγέθους κλειδιού RSA: Επιλέξτε κλειδιά RSA 2048, 3072 ή 4096-bit για ισορροπία μεταξύ ασφάλειας και απόδοσης
  • Προαιρετικό πεδίο σχολίου: Επισυνάψτε ένα σχόλιο στυλ user@hostname για να βοηθήσετε στον εντοπισμό του κλειδιού σε όλες τις συσκευές
  • Δημιουργία στην πλευρά του πελάτη: Τα κλειδιά δημιουργούνται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας χρησιμοποιώντας το Web Crypto API — τίποτα δεν μεταδίδεται ή αποθηκεύεται
  • Λήψη με ένα κλικ: Αποθηκεύστε τα αρχεία δημόσιου και ιδιωτικού κλειδιού απευθείας με σωστά ονόματα αρχείων (id_ed25519, id_ed25519.pub, id_rsa, id_rsa.pub)

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

  • Ρύθμιση πρόσβασης διακομιστή: Δημιουργήστε ένα ζεύγος κλειδιών μία φορά και αναπτύξτε το δημόσιο κλειδί σε οποιονδήποτε αριθμό απομακρυσμένων διακομιστών Linux/Unix μέσω ~/.ssh/authorized_keys για ενεργοποίηση σύνδεσης SSH χωρίς κωδικό πρόσβασης
  • Έλεγχος ταυτότητας φιλοξενίας Git: Προσθέστε το δημόσιο κλειδί στο GitHub, GitLab ή Bitbucket για έλεγχο ταυτότητας λειτουργιών git push και git pull χωρίς να εισάγετε διαπιστευτήρια κάθε φορά
  • Σωλήνες CI/CD: Δημιουργήστε ένα αποκλειστικό ζεύγος κλειδιών ανάπτυξης για αυτοματοποιημένα σενάρια ή παράγοντες κατασκευής που χρειάζονται πρόσβαση SSH σε διακομιστές ή ιδιωτικά αποθετήρια

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

Η δημιουργία κλειδιού χρησιμοποιεί το ενσωματωμένο API crypto.subtle του προγράμματος περιήγησης (Web Crypto). Για το Ed25519, η ακατέργαστη 32-byte ιδιωτική κλίμακα και το 32-byte δημόσιο κλειδί συσκευάζονται στη μορφή σύρματος OpenSSH (openssh-key-v1). Για το RSA, το κλειδί εξάγεται σε μορφή PKCS#8 DER και περιτυλίγεται σε ένα τυπικό περίβλημα PEM. Το δημόσιο κλειδί blob κωδικοποιείται στη μορφή σύρματος SSH (όνομα αλγόριθμου με πρόθεμα μήκους ακολουθούμενο από υλικό κλειδιού) και Base64-κωδικοποιημένο, ταιριάζοντας με τη μορφή που αναμένεται από το αρχείο authorized_keys του OpenSSH.

Συμβουλές

  • Μετά τη λήψη, ορίστε τα σωστά δικαιώματα στο αρχείο ιδιωτικού κλειδιού: chmod 600 ~/.ssh/id_ed25519. Το SSH θα αρνηθεί να χρησιμοποιήσει ένα ιδιωτικό κλειδί που είναι αναγνώσιμο από άλλους χρήστες.
  • Χρησιμοποιήστε Ed25519 εκτός αν χρειάζεστε συμβατότητα με παλαιότερα συστήματα που δεν το υποστηρίζουν. Παράγει μικρότερα κλειδιά και είναι ταχύτερο από το RSA.
  • Το πεδίο σχολίου δεν επηρεάζει την κρυπτογραφική ισχύ του κλειδιού — είναι καθαρά για ανθρώπινο εντοπισμό και μπορεί να αλλαχθεί αργότερα με ssh-keygen -c.
  • Για μέγιστη συμβατότητα RSA με παλαιούς διακομιστές, χρησιμοποιήστε κλειδιά 4096-bit. Για σύγχρονους διακομιστές, το Ed25519 προτιμάται ανεξάρτητα από το μέγεθος κλειδιού RSA.