Jak włączyć wymianę kluczy diffie-hellman-group1-sha1 w Debianie 8.0?

65

Nie mogę połączyć się z serwerem, który prosi o diffie-hellman-group1-sha1metodę wymiany kluczy:

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

Jak włączyć diffie-hellman-group1-sha1metodę wymiany kluczy w Debianie 8.0?

Próbowałem (jak tutaj zaproponowano )

  1. dodaj następujące wiersze do mojego /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
    
  2. ponownie wygeneruj klucze za pomocą

    ssh-keygen -A
    
  3. uruchom ponownie ssh za pomocą

    service ssh restart
    

    ale nadal pojawia się błąd.

j1088099.mvrht.com.
źródło
To samo dzieje się ze mną z Debianem 9.
Rui F Ribeiro,
Spróbuj tego diffie-hellman-group-exchange-sha256
Miguel

Odpowiedzi:

92

Witryna OpenSSH ma stronę poświęconą starszym zagadnieniom, takim jak ta. Sugeruje następujące podejście na kliencie :

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123

lub bardziej trwale, dodając

Host 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1

do ~/.ssh/config.

Umożliwi to użycie starych algorytmów na kliencie , umożliwiając mu połączenie z serwerem.

Stephen Kitt
źródło
Też miałem dzisiaj do czynienia z tym problemem, ale było to spowodowane siecią. Zmieniłem sieć i problem zniknął
Luv33preet
Próbowałem powyżej, ale dostałemUnable to negotiate with 192.168.1.123 port 22222: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc,blowfish-cbc
typelogic
@ifelsemonkey to inny problem, pamiętaj, że otrzymana oferta nie jest taka sama jak w pytaniu.
Stephen Kitt
2
Potwierdził, że to inny problem. Udało mi się to rozwiązać, dodając następujący wpis do mojego ~/.ssh/configpliku. Host 192.168.1.123i pod nim Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc.
typelogic
17

Wypróbowałem to rozwiązanie, ale moim problemem było to, że miałem wielu (starszych) klientów łączących się z moim niedawno zaktualizowanym serwerem (ubuntu 14 -> ubuntu 16).

Zmiana z openssh6 -> openssh7 domyślnie wyłączona diffie-hellman-group1-sha1metoda wymiany kluczy.

Po przeczytaniu tego i tego wymyśliłem zmiany, które musiałem zrobić w /etc/ssh/sshd_configpliku:

#Legacy changes
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc

Ale bardziej obszerny zestaw zmian jest (wzięty stąd )

#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
arod
źródło
4
Mam nadzieję, że w pewnym momencie będziesz w stanie zaktualizować swoich klientów, starsze algorytmy zostały wyłączone z bardzo dobrych powodów i nie powinny być ponownie włączane lekko (prawdopodobnie zdajesz sobie sprawę, pomyślałem, że warto zwrócić uwagę innym czytelnikom).
Stephen Kitt
1
Działa to po stronie serwera (w przeciwieństwie do bardzo podobnej, akceptowanej odpowiedzi, która koncentrowała się po stronie klienta).
kn
próbuję użyć tego samego, aby włączyć stare klucze. ale ponieważ jestem nowicjuszem, tak naprawdę nie wiem, jaki adres IP umieścić, gdy piszę ssh -oKexAl algorytmy = + diffie-hellman-group1-sha1 123.123.123.123
Yousi
Aby dodać, aby przyszli ludzie mogli je znaleźć, łączyłem się przez SSH z komputerem Mac z OpenSSH_7.9p1 do przełącznika Cisco 3750 z oprogramowaniem: Cisco IOS Software, C3750 Software (C3750-IPSERVICESK9-M), wersja 12.2 (55) SE12, OPROGRAMOWANIE RELEASE (fc2). Dodałem następujące ustawienia do konfiguracji klienta i mogłem ssh w: KexAl algorytmy + diffie-hellman-group1-sha1 Ciphers + aes128-
cbc