
Το GitHub αλλάζει το SSH: ποια παλιά κλειδιά κινδυνεύουν να πάψουν να δουλεύουν

Με ανακοίνωση της 22ας Σεπτεμβρίου 2026, το GitHub όρισε ότι από τις 14 Οκτωβρίου 2026 τα νέα κλειδιά RSA που προστίθενται για ταυτοποίηση ή υπογραφή πρέπει να έχουν μήκος τουλάχιστον 3072 bit. Προγραμμάτισε επίσης προσωρινές διακοπές στις 4 Νοεμβρίου και στις 9 Δεκεμβρίου 2026, πριν από την οριστική απόσυρση της υπογραφής RSA με SHA-1 στις 13 Ιανουαρίου 2027.
Τα ήδη καταχωρισμένα κλειδιά RSA δεν καταργούνται συλλήβδην. Μπορούν να συνεχίσουν να λειτουργούν όταν ο πελάτης SSH υπογράφει με SHA-2. Ο κίνδυνος αφορά κυρίως συνδέσεις από παλιούς πελάτες ή βιβλιοθήκες που επιμένουν στην υπογραφή RSA/SHA-1, ακόμη και αν το ίδιο το κλειδί έχει μεγάλο μήκος. Για κάθε διαδρομή πρόσβασης σε αποθετήριο, χρειάζεται επομένως να διαπιστωθεί ποιο πρόγραμμα κάνει πράγματι τη σύνδεση.
Γιατί ένα κλειδί RSA μπορεί να λειτουργεί ή να αποτυγχάνει
Η σύγχυση ξεκινά από το όνομα ssh-rsa. Όταν εμφανίζεται στην αρχή ενός δημόσιου κλειδιού, δηλώνει τον τύπο του κλειδιού: RSA. Κατά την ταυτοποίηση, το ίδιο όνομα περιγράφει και μια συγκεκριμένη υπογραφή, η οποία συνδυάζει RSA με SHA-1. Οι υπογραφές rsa-sha2-256 και rsa-sha2-512 χρησιμοποιούν το ίδιο είδος κλειδιού με SHA-2.
Το δημόσιο κλειδί που φαίνεται στον λογαριασμό GitHub δεν αποκαλύπτει ποια από αυτές τις υπογραφές θα επιλέξει μια εφαρμογή όταν συνδεθεί. Η επιλογή εξαρτάται από τις δυνατότητες και τις ρυθμίσεις του πραγματικού πελάτη SSH. Γι’ αυτό η ηλικία ή το μήκος ενός υπάρχοντος κλειδιού δεν αρκεί για να προβλέψει αν η σύνδεση θα πετύχει.
- Υπάρχον κλειδί RSA με rsa-sha2-256 ή rsa-sha2-512: μπορεί να συνεχίσει να χρησιμοποιείται, εφόσον ο πελάτης υποστηρίζει και διαπραγματεύεται την αντίστοιχη υπογραφή.
- Υπάρχον κλειδί RSA με υπογραφή ssh-rsa: η σύνδεση κινδυνεύει να αποτύχει όταν διακοπεί η αποδοχή RSA/SHA-1. Ένα μεγαλύτερο κλειδί από μόνο του δεν προσθέτει υποστήριξη SHA-2 σε παλιό λογισμικό.
- Νέο κλειδί RSA κάτω από το ελάχιστο μήκος: ο νέος κανόνας εμποδίζει την προσθήκη του. Δεν περιγράφει αυτόματη διαγραφή κλειδιών που έχουν ήδη καταχωριστεί.
- Κλειδί Ed25519 ή ECDSA: δεν χρησιμοποιεί την υπογραφή RSA/SHA-1 που αποσύρεται. Ο πελάτης που το χρησιμοποιεί πρέπει, όπως πάντα, να υποστηρίζει τον τύπο του.
Οι ημερομηνίες αφορούν και δεύτερο μηχανισμό SSH
Οι προσωρινές διακοπές και η τελική κατάργηση αφορούν επίσης τη μέθοδο ανταλλαγής κλειδιών diffie-hellman-group-exchange-sha256. Πρόκειται για διαφορετικό στάδιο της σύνδεσης από την υπογραφή με την οποία ο χρήστης αποδεικνύει ότι κατέχει το ιδιωτικό του κλειδί. Αν μια σύνδεση αποτύχει κατά τη δοκιμαστική διακοπή, η αιτία μπορεί να βρίσκεται σε οποιοδήποτε από τα δύο στάδια.
Στο ίδιο χρονοδιάγραμμα εντάσσεται η υποστήριξη του mlkem768x25519-sha256 για την ανταλλαγή κλειδιών μιας συνεδρίας στο github.com και σε περιβάλλοντα GitHub Enterprise Cloud με Data Residency, με εξαίρεση την περιοχή των ΗΠΑ. Η προσθήκη του δεν αλλάζει τον τύπο του αποθηκευμένου κλειδιού χρήστη και δεν απαιτεί αντικατάστασή του. Ένας παλιότερος πελάτης μπορεί να διαπραγματευτεί άλλη υποστηριζόμενη μέθοδο ανταλλαγής.
Η ανεξάρτητη ανάλυση του Prakhar Bhatia επισήμαινε ότι παλαιότερη μορφή του χρονοδιαγράμματος εμφάνιζε το 2026 ως έτος της τελικής κατάργησης, παρότι αυτή ακολουθούσε τις διακοπές του Νοεμβρίου και του Δεκεμβρίου. Το πλέον δημοσιευμένο χρονοδιάγραμμα αναγράφει το 2027. Η πρώτη προθεσμία, για το μήκος των νέων κλειδιών RSA, παραμένει τον Οκτώβριο.
Ποιος πελάτης συνδέεται από κάθε περιβάλλον
Στον υπολογιστή ανάπτυξης, το Git μπορεί να χρησιμοποιεί το εγκατεστημένο OpenSSH, ενώ ένα IDE μπορεί να ενσωματώνει δική του υλοποίηση. Αντίστοιχα, η έκδοση SSH στον υπολογιστή που φιλοξενεί έναν CI runner δεν περιγράφει απαραίτητα τη βιβλιοθήκη μέσα στο περιβάλλον εκτέλεσης του job. Μια επιτυχημένη σύνδεση από το προσωπικό τερματικό δεν ελέγχει αυτόματα τις εργασίες clone, fetch ή push του αυτοματισμού.
Ως εκδόσεις αναφοράς για υποστήριξη RSA με SHA-2 στις προεπιλεγμένες ρυθμίσεις, το GitHub παραθέτει OpenSSH 7.2p1, JSch 0.1.66 από το συγκεκριμένο fork, TeamCity 2021.2.3, Go SSH 0.16.0, libssh2 1.11.0 και PuTTY 0.82. Πρόκειται για αφετηρία απογραφής, όχι για απόδειξη ότι κάθε εγκατάσταση με αυτόν τον αριθμό έκδοσης θα επιλέξει τη σωστή υπογραφή. Μετρούν επίσης η ενσωματωμένη βιβλιοθήκη, οι ρυθμίσεις και η πραγματική διαπραγμάτευση με τον διακομιστή.
Η απογραφή χρειάζεται να καλύψει τα απομακρυσμένα URL των αποθετηρίων και τις υπομονάδες Git, που μπορεί να έχουν διαφορετική διεύθυνση από το κύριο αποθετήριο. Μια διαδρομή που χρησιμοποιεί HTTPS δεν επηρεάζεται από αυτές τις αλλαγές αλγορίθμων SSH. Για τις διαδρομές SSH, το κρίσιμο στοιχείο είναι ο πελάτης που εκτελεί τη συγκεκριμένη εργασία, μαζί με το κλειδί που παρουσιάζει και την υπογραφή που παράγει.
Έλεγχος χωρίς αντικατάσταση κλειδιών
Το git remote -v δείχνει τις διευθύνσεις του συγκεκριμένου αποθετηρίου. Στο περιβάλλον όπου εκτελείται η σύνδεση, το ssh -V εμφανίζει την έκδοση του OpenSSH, ενώ το ssh-keygen -lf ~/.ssh/id_rsa.pub εμφανίζει το μήκος και το αποτύπωμα του δημόσιου κλειδιού, εφόσον αυτό βρίσκεται στην ενδεικτική διαδρομή. Αυτές οι εντολές δεν τροποποιούν τα κλειδιά· η έκδοση του OpenSSH, πάντως, έχει διαγνωστική αξία μόνο αν η εργασία το χρησιμοποιεί πράγματι.
Οι οδηγίες σύνδεσης του GitHub χρησιμοποιούν το ssh -T [email protected] για δοκιμή ταυτοποίησης. Αν εμφανιστεί προειδοποίηση για άγνωστο κλειδί διακομιστή, το αποτύπωμά του πρέπει να συγκριθεί με τα δημοσιευμένα αποτυπώματα του GitHub πριν γίνει αποδεκτό. Σε επιτυχημένη ταυτοποίηση εμφανίζεται μήνυμα με το όνομα χρήστη, παρότι η εντολή μπορεί να τερματίσει με κωδικό εξόδου 1 επειδή δεν παρέχεται πρόσβαση σε κέλυφος.
Για πιο λεπτομερή διάγνωση, το ssh -vvv -T [email protected] εμφανίζει στα διαγνωστικά μηνύματα την υπογραφή που χρησιμοποιήθηκε και τη μέθοδο ανταλλαγής κλειδιών. Το ssh -G github.com δείχνει τις τοπικές ρυθμίσεις χωρίς να πραγματοποιεί σύνδεση, άρα δεν αποδεικνύει ότι η ταυτοποίηση πέτυχε. Όταν μια εφαρμογή χρησιμοποιεί ενσωματωμένο JSch, Go SSH ή libssh2, η δοκιμή με ξεχωριστή εντολή OpenSSH δεν ελέγχει τη συμπεριφορά της εφαρμογής.
Για έναν CI runner, ο αντιπροσωπευτικός έλεγχος είναι μια λειτουργία ανάγνωσης από το ίδιο job, με την ίδια βιβλιοθήκη και τα ίδια διαπιστευτήρια που χρησιμοποιεί κανονικά. Έτσι, η πρώτη προγραμματισμένη δοκιμαστική διακοπή μπορεί να βρει ήδη γνωστές διαδρομές πρόσβασης, αντί να αποκαλύψει για πρώτη φορά ποιος αυτοματισμός εξακολουθεί να εξαρτάται από παλιό αλγόριθμο.
Διαβάστε επίσης:
Σχετικά άρθρα


Cursor ή GitHub Copilot: οι σύνθετες αλλαγές έχουν άλλη τιμή

Pomodoro ή time blocking: το χρονόμετρο δεν λύνει τον λάθος προγραμματισμό

Claude Code Mods: αλλάζουν τον agent από μέσα, χωρίς sandbox

Proton Mail ή Tuta: περισσότερη κρυπτογράφηση μπορεί να σημαίνει λιγότερη συμβατότητα

Teal ή Rezi: το δωρεάν βιογραφικό τελειώνει σε διαφορετικό σημείο
Εγγραφείτε στο newsletter μας
Λάβετε τα τελευταία νέα για Web3, AI και κρυπτονομίσματα απευθείας στα εισερχόμενά σας.