SCP- bzw. SSH-Fehler "Permission denied (publickey,password)"

warning: fread(): Length parameter must be greater than 0 in /var/www/elchs-kramkiste.de/lapurd/includes/common.inc(1695) : eval()'d code on line 19.

Vorgeschichte: Ich kopiere per cron-Job über scp alle 10 Minuten lokale Textdateien, die mit den aktualisierten Werten meiner Wetterstation gefüllt sind, auf einen Root-Server im Internet. Die Konfiguration für diese ssh-Verbindung steht in einer Konfigurations-Datei. Die SSH-Verbindung wird per public-key (also ohne Passwort) hergestellt. Nach einem Distributionsupdate des lokalen Linux PCs von Ubuntu 14.04-LTS auf 16.04-LTS funktionierte dies nicht mehr.

Eine weitere Untersuchung ergab, dass das Problem beim (open)SSH-Client auf dem lokalen PC lag. Dieser brachte beim händischen Ausführen des Befehls


scp -F /user/.ssh/Konfigurations-Dateiname -p XYZXY /Verzeichnis/Dateiname.txt user@Server:/Verzeichnis/User-Verzeichnis/



die Fehlermeldung:


Permission denied (publickey,password)



Eine Anmeldung per ssh an dem SSH-Host mit Passwort war aber noch möglich.

Die Erweiterung des o.a. scp-Befehls um die Option -v brachte dann etwas mehr Licht ins Dunkel, denn es wurde nun etwas mehr gemeldet:


debug1: Skipping ssh-dss key /root/.ssh/lokalPC_id_dsa - not in PubkeyAcceptedKeyTypes



Eine kurze Recherche ergab dann, dass in der ssh-Konfigurations-Datei (.config) eine Option ergänzt werden musste, nämlich


PubKeyAcceptedKeyTypes ssh-dss*



Gemacht, neuen Versuch gestartet und alles funktioniert, als wäre nichts gewesen.

Ursache wird die durch das Distributionsupdate eingespielte neuere SSH-Version gewesen sein, welche die mit älteren Verfahren erstellten public-Keys per default nicht akzeptiert.

Welche Public-Key-Arten noch unterstützt werden, können Sie nach dem o.a. Link durch den Befehl

ssh -Q key



in Erfahrung bringen.