Routinemäßiger SCP-Befehl schlägt fehl (VPN/Netzwerk aktiv)

Routinemäßiger SCP-Befehl schlägt fehl (VPN/Netzwerk aktiv)

Meine Entwicklungsmaschine läuft unter Fedora (36).

Kürzlich habe ich versucht, eine Datei per SCP auf einen Remote-Server (CentOS 7) zu übertragen und erhielt eine kryptische Fehlermeldung:

scp: dest open(""): Keine solche Datei oder kein solches Verzeichnis

Der Befehl sieht ungefähr so ​​aus:

scp -C foo.ext user@internal-vpn-ip:~/

Nichts Ungewöhnliches, habe dies im Laufe der Jahre viele Male ohne Probleme gemacht. Seltsam, dachte ich, alles läuft, aber scp kann den Remote-Pfad nicht finden. Nach ein wenig Experimentieren habe ich den Remote-Benutzerpfad erweitert:

scp -C foo.ext user@remote-ip:/path/to/user/

und voilà, es hat funktioniert!

Die Frage ist, warum~Pfaderweiterung funktioniert nicht mehr?

Antwort1

Sieht so aus, als ob SCP in RedHat 9+ jetzt hinter den Kulissen SFTP verwendet.

ImAbkündigung von OpenSSH SCPSeite gibt es eine Liste von Inkompatibilitäten und Einschränkungen in Bezug auf Systeme vor RedHat 9 und RedHat 9+, einschließlich dieses relevanten Snippets.

Ein weiterer Unterschied zwischen den Protokollen besteht in der Erweiterung der ~-basierten Pfadverarbeitung. OpenSSH 8.7 und spätere Versionen unterstützen eine spezielle SFTP-Erweiterung, um mit dieser Erweiterung umzugehen. Leider wird diese Erweiterung in früheren Versionen nicht unterstützt, sodass das Kopieren von Ordnern von einer neuen Version von RHEL in eine alte fehlschlägt, wenn die ~-Pfadverarbeitung verwendet wird. In solchen Fällen besteht die empfohlene Lösung darin, absolute Pfade anzugeben.

Das erklärt also, warum der Pfad manuell erweitert werden muss. Ärgerlich, aber jetzt wissen wir wenigstens, warum :)

verwandte Informationen