Zum Hauptmenü

Fehlermeldung „no matching host key type found“ nach OpenSSH-Update

Jörg Kruse

Beim heutigen Update von openssh-client von Version 6.9p1-3 auf Version 7.1p1-4 in Debian Testing meldete apt-listchanges, dass OpenSSH 7.0 einige Komponenten schwacher Verschlüsselung deaktiviert hat:

OpenSSH 7.0 disables several pieces of weak, legacy, and/or unsafe
cryptography.

* Support for the legacy SSH version 1 protocol is disabled by default at
compile time. Note that this also means that the Cipher keyword in
ssh_config(5) is effectively no longer usable; use Ciphers instead for
protocol 2. The openssh-client-ssh1 package includes „ssh1“, „scp1“,
and „ssh-keygen1“ binaries which you can use if you have no alternative
way to connect to an outdated SSH1-only server; please contact the
server administrator or system vendor in such cases and ask them to
upgrade.
* Support for the 1024-bit diffie-hellman-group1-sha1 key exchange is
disabled by default at run-time. It may be re-enabled using the
instructions at http://www.openssh.com/legacy.html
* Support for ssh-dss, ssh-dss-cert-* host and user keys is disabled by
default at run-time. These may be re-enabled using the instructions at
http://www.openssh.com/legacy.html
* Support for the legacy v00 cert format has been removed.

Nach dem Update erhielt ich dann auch prompt eine Fehlermeldung, als ich mich mit SSH auf einen Webspace einloggen wollte:

Unable to negotiate with 192.0.2.42: no matching host key type found. Their offer: ssh-dss

Lösungsansätze finden sich auf der Seite Using OpenSSH with legacy SSH implementations.

Wenn man die Kontrolle über den Server hat, sollte man den dortigen SSH-Server upgraden, so dass dieser keine veralteten Verschlüsselungsmethoden mehr verwendet. Andernfalls sollte der Admin des Servers darauf hingewiesen werden. Solange das Problem serverseitig noch nicht behoben ist, kann man mit der auf der oben verlinkten Seite angegebenen Optionen für den SSH-Client eine Verbindung herstellen, so z.B. im vorliegenden Fall die Option -oHostKeyAlgorithms=+ssh-dss verwenden:


ssh -oHostKeyAlgorithms=+ssh-dss joe-user@example.com

Um diese Option nicht jedesmal eintippen zu müssen, kann man diese auch in der Datei ~/.ssh/config unterhalb des betreffenden Hosts definieren:


Host foo
    Hostname example.com
    User joe-user
    HostkeyAlgorithms ssh-dss

Da hier auch Hostname und Username definiert sind, reicht dann ein einfaches „ssh foo“ im Terminal

Sobald der SSH-Server auf dem neuesten Stand ist, sollte diese Option aber wieder entfernt werden, so dass dann ein sicherer Algorithmus genutzt werden kann.

Tags: Debian

Die Kommentarfunktion wurde nach 180 Tagen automatisch geschlossen.