Ten konkretny błąd występuje podczas konfigurowania szyfrowanego kanału. Jeśli twój system i system zdalny nie współużytkują co najmniej jednego szyfru, nie ma szyfru do uzgodnienia i żaden szyfrowany kanał nie jest możliwy. Zazwyczaj serwery SSH oferują niewielką garść różnych szyfrów w celu zaspokojenia potrzeb różnych klientów; Nie jestem pewien, dlaczego serwer zostałby skonfigurowany tak, aby zezwalał tylko na 3DES-CBC.
Teraz 3DES-CBC nie jest straszny. Jest powolny i zapewnia mniejsze bezpieczeństwo niż niektóre inne algorytmy, ale nie można go natychmiast złamać, dopóki klucze są odpowiednio wybrane. Sam CBC ma pewne problemy z modyfikowaniem tekstu zaszyfrowanego w tranzycie, ale mocno podejrzewam, że wynikowe uszkodzenie zostanie odrzucone przez HMAC SSH, zmniejszając jego wpływ. Podsumowując, istnieją gorsze wybory niż 3DES-CBC i są lepsze. Zawsze należy jednak postępować ostrożnie, zastępując wartości domyślne związane z bezpieczeństwem, w tym wybór algorytmu szyfrowania i wymiany kluczy.Te wartości domyślne są domyślne z jakiegoś powodu; niektórzy całkiem sprytni ludzie poświęcili trochę mocy mózgu, biorąc pod uwagę opcje i ustalili, że to, co wybrano jako domyślne, zapewnia najlepsze ogólne bezpieczeństwo w porównaniu do kompromisu wydajności.
Jak się dowiedziałeś, możesz użyć -c ...
(lub -oCiphers=...
), aby określić, który szyfr zaoferować po stronie klienta. W takim przypadku dodanie -c 3des-cbc
pozwala tylko 3DES-CBC od klienta. Ponieważ odpowiada to szyfrowi oferowanemu przez serwer, można ustanowić szyfrowany kanał, a połączenie przechodzi do fazy uwierzytelniania.
Możesz także dodać to do swoich osobistych ~/.ssh/config
. Aby uniknąć globalnej zmiany w celu rozwiązania lokalnego problemu, możesz wprowadzić go w błąd Host
. Na przykład, jeśli twoja konfiguracja SSH mówi obecnie (fikcyjny przykład):
Port 9922
określając globalny domyślny port 9922 zamiast domyślnego 22, możesz dodać sekcję hosta dla hosta wymagającego specjalnej konfiguracji oraz globalną sekcję hosta dla przypadku domyślnego. To byłoby coś w stylu ...
Host 10.255.252.1
Ciphers 3des-cbc
KexAlgorithms +diffie-hellman-group1-sha1
Host *
Port 9922
Wcięcie jest opcjonalne, ale uważam, że znacznie poprawia czytelność. Puste linie i linie zaczynające się od #
są ignorowane.
Jeśli zawsze (lub głównie) logujesz się jako ten sam użytkownik w tym systemie, możesz także podać tę nazwę użytkownika:
Host 10.255.252.1
Ciphers 3des-cbc
KexAlgorithms +diffie-hellman-group1-sha1
User enduser
Host *
Port 9922
Nie musisz dodawać Host *
zwrotki, jeśli na początku nie było nic w ~ / .ssh / config, ponieważ w takim przypadku byłyby to tylko domyślne ustawienia systemowe lub systemowe (zwykle z / etc / ssh / ssh_config) używany.
W tym momencie linia komend ssh do połączenia z tym hostem ogranicza się do zwykłego
$ ssh 10.255.252.1
i wszyscy inni użytkownicy w twoim systemie oraz połączenia ze wszystkimi innymi hostami z twojego systemu, zmiany nie mają wpływu.