Beim Starten einer SSH-Verbindung zu einem Ziel erscheinen folgende oder ähnliche Meldungen:
Unable to negotiate with 1.2.3.4 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha`
oder
Unable to negotiate with 1.2.3.4 port 22: no matching cipher found. Their offer: des,3des-cb`
Hintergrund:
Ein Cipher (cypher) ist ein Algorithmus für Ver- und Entschlüsselung. Eine Diffie-Hellman Group ist eine Methode um kryptografische Schlüssel auszutauschen.
Manch ältere Cipher’s oder DH-Groups werden von aktuelleren oder upgedateten SSH Clients blockiert bzw. unterdrückt. Wenn man sich jedoch auf ein älteres Gerät verbinden möchte können obige Meldungen erscheinen und die Verbindung wird abgebrochen.
Lösung:
Man könnte nun die SSH-Einstellungen grundlegend bearbeiten um die alten Standards generell wieder zu erlauben. Das ist aber eigentlich nicht nötig da aktuelle Geräte aktuelle Standards verwenden und alte Standards die Ausnahme sind. Daher ist es besser für die betreffende Verbindung die zu verwendenden Standards anzugeben.
Die zu verwendende Key Exchange Method aus dem Vorschlag des Fehlers, kann mit -oKexAlgorithms=+abc angegeben werden. Die Cipher Suite kann mit -c abc angegeben werden.
Beispiel, zusammengesetzt aus den oberen Fehlern:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@1.2.3.4 -c 3des-cbc