Thread Net::SSH2 - LIBSSH2_ERROR_KEX_FAILURE Unable to exchange encryption keys (51 answers)
Opened by bianca at 2023-06-30 11:30

Linuxer
 2023-06-30 12:39
#195051 #195051
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Gerade bei SSH Updates kann es sein, dass Algorithmen zum Austausch der Schlüsseldaten abgeschaltet worden sind, und/oder durch neue ersetzt wurden. Es kann sein, dass manche Distribution den Support für alte Algorithmen im Laufe der Zeit abschaltet (hat z.B. Red Hat so mit SHA1 gemacht).

Wenn der Client dann nur diese alten Algorithmen unterstützt, aber keine neuen, und der Server nur noch die neuen, aber nicht mehr die alten unterstützt, dann kann keine Verbindung mehr zustande kommen.

Laut Doku auf https://metacpan.org/pod/Net::SSH2 schaut es mir bös danach aus, dass da die Algorithmen veraltet sind (z.B. die Liste unter https://metacpan.org/pod/Net::SSH2#LIBSSH2_METHOD_... nur mit sha1, md5, und ripemd160 sieht recht veraltet aus)...

IMHO braucht es da ein Update von Net::SSH2 (und/oder der zugrundeliegenden libssh2) um auch neuere Algorithmen zu unterstützen. Je nach Umsetzung birgt das aber auch die Gefahr, dass dann auch die alten Algorithmen wegfallen und dann nicht mehr auf Rechner mit alter SSH Version zugegriffen werden kann.

Unter der in der Perldoc von Net::SSH2 verlinkten Seite https://www.libssh2.org/ kann man nachlesen, was aktuelle libssh2 Versionen unterstützen. Da sind schon Unterschiede zu erkennen.

Wenn putty installiert ist, hoffe ich, dass die gesamte putty Suite mit allen Programm verfügbar ist.
Da Du ja schreibst, dass die Verbindung mit putty funktioniert, könntest Du evtl. die gewünschten Kommandos auf der entfernten Maschine mit dem putty-Tool plink.exe durchführen lassen. Das wäre dann eben ein system()-Call im Perl-Code...

Code: (dl )
plink.exe user@remotehost "command ..."


Details zur Benutzung von plink.exe bekommt man, wenn man es ohne Argumente aufruft.
Oder unter https://the.earth.li/~sgtatham/putty/0.78/htmldoc/...

Im Skripting ist bei plink.exe gerade die Option -no-antispoof wichtig.
Quote
-no-antispoof omit anti-spoofing prompt after authentication

Ohne diese Option wartet der Aufruf auf Benutzereingabe (<ENTER>), bevor es weiter geht.

Edit: Alternative Option -batch für Einsatz in Skripten; schaltet alle interaktiven Prompts ab...
Last edited: 2023-06-30 15:38:33 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Net::SSH2 - LIBSSH2_ERROR_KEX_FAILURE Unable to exchange encryption keys