Heute hatte ich einen interessanten Fehler bei einer Verbindung mithilfe von ssh:

sign_and_send_pubkey: no mutual signature supported

Nur habe ich dazu im Netz keine Beschreibung gefunden, bzw. einen Anhaltspunkt, der mir weiterhilft.

Doch erstmal einen Punkt zurück.

Wie funktioniert die Authentifizierung mit SSH?

Eigentlich ganz simpel: Es wird ein Schlüsselpaar, private und public, genommen und dann miteinander verglichen. Wenn alles passt, darf man den Server betreten. Der Server hat in diesen Fall den public Key hinterlegt. Der Client, also ich, habe in meinen .ssh Ordner den private Key hinzugefügt. Nun frage ich also mit meinen private Key den Server an und bekomme als Austausch den public Key vom Server.

No mutual signature supported

In meinen heutigen Fall, habe ich aber keine Authentifizierung bekommen und das lag an dem Fakt, das der Public Key eine alte Verschlüsselung benutzt: ssh-dss.

Diese Art der Verschlüsselung ist anscheinend schon seit längerer Zeit deprecated und ich habe anscheinend meine OpenSSH Version auf dem Client geupdatet. Demzufolge mag mein Rechner nun die ssh-dss Variante des public Keys nicht.

Der nächste Schritt wird auf jeden Fall sein, diesen Key zu updaten und ssh-dss komplett zu verbannen. Damit ich mich aber erstmal verbinden kann, muss ich folgende Ausnahme in der ssh-config hinterlegen:

Host irgendeinserver-*
 User user
 Port 22
 HostKeyAlgorithms ssh-dss
 PubkeyAcceptedKeyTypes ssh-dss
 IdentityFile privatekey.pem

Nun darf also der Hostkey und der public Key im ssh-dss Format geschickt werden und die Authentifizierung funktioniert wieder.

Party

Featurebild ist von pixabay und wurde von weinstock hochgeladen
Tags