Δεν μπορώ να κάνω ssh σε έναν διακομιστή που ζητάει τη μέθοδο ανταλλαγής κλειδιών diffie-hellman-group1-sha1
:
ssh 123.123.123.123
Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
Πώς μπορώ να ενεργοποιήσω τη μέθοδο ανταλλαγής κλειδιών diffie-hellman-group1-sha1
στο Debian 8.0;
Προσπάθησα (όπως προτείνεται εδώ) να
να προσθέσω τις ακόλουθες γραμμές στο /etc/ssh/ssh_config
μου
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
αναγέννηση κλειδιών με
ssh-keygen -A
επανεκκίνηση του ssh με
service ssh restart
αλλά εξακολουθεί να εμφανίζεται το σφάλμα.
Ο ιστότοπος του OpenSSH έχει μια σελίδα αφιερωμένη σε κληρονομικά ζητήματα όπως αυτό. Προτείνει την ακόλουθη προσέγγιση, στον πελάτη:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123
ή πιο μόνιμα, προσθέτοντας
Host 123.123.123.123
KexAlgorithms +diffie-hellman-group1-sha1
στο ~/.ssh/config
.
Αυτό θα ενεργοποιήσει τους παλιούς αλγορίθμους στον πελάτη, επιτρέποντάς του να συνδεθεί στον διακομιστή.
Δοκίμασα αυτή τη λύση, αλλά το πρόβλημά μου ήταν ότι είχα πολλούς (παλαιούς) πελάτες που συνδέονταν στον πρόσφατα αναβαθμισμένο διακομιστή μου (ubuntu 14 -> ubuntu 16).
Η αλλαγή από το openssh6 -> openssh7 απενεργοποίησε από προεπιλογή τη μέθοδο ανταλλαγής κλειδιών diffie-hellman-group1-sha1
.
Μετά την ανάγνωση των this και this κατέληξα στις αλλαγές που έπρεπε να κάνω στο αρχείο /etc/ssh/sshd_config
:
#Legacy changes
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
Αλλά ένα πιο ευρύ σύνολο αλλαγών είναι (παρμένο από εδώ)
#Legacy changes
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr