17 Mar 2019
Szenario: man hat gerade Debian 8.3 installiert, oder unter FreeBSD bzw. Gentoo den SSH-Client aktualisiert. Jetzt bekommt man, wenn man sich zu einem älteren Gerät verbinden will, folgende Fehlermeldung
Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
Dies kommt zustande, weil bestimmte ältere kryptographische Verfahren regeläßig aus neueren SSH-Versionen entfernt werden. Es gibt speziell eine Webseite, auf der das OpenSSH-Team dies erläutert: http://www.openssh.com/legacy.html
Ssh kann so verwendet werden, dass es diffie-hellman wieder erlaubt:
chrissie@newhost: $ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@somehost.example.org
dauerhaft kann dies aktiviert werden durch einen Eintrag in der Datei ~/.ssh/config
Host somehost.example.org
KexAlgorithms +diffie-hellman-group1-sha1
In diesem Fall muss man in der Datei /etc/ssh/sshd_config folgende Zeilen änder, und die Legacy Methoden wieder mit aufnehmen:
#Legacy changes
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,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
Es ist nötig, danach sshd neu zu starten und die Schlüssel neu zu generieren
root # ssh-keygen -A
root # service ssh restart