Ich bin bereits vor einigen Monaten mit meinem Server bzw. V-Server umgezogen, aber einige Sachen sind noch immer nicht ganz aufgeräumt bzw. vollständig eingerichtet. Etwa der FTP-Zugang. Ich habe aus Sicherheitsgründen sowieso mittlerweile (weitgehend) auf SFTP umgestellt, aber genau da gab es Probleme.
Als root konnte ich mich mit SFTP einloggen, aber die Dateien und Verzeichnisse nur ansehen und nicht runterladen bzw. irgendetwas hochladen. Bei ein paar Verzeichnissen bzw. Domain hat FTP funktioniert – mit verschiedenen Usern, bei anderen nicht. Und SFTP ging mit anderen Usern gar nicht. Aber ich konnte den zentralen Fehler irgendwann identifizieren.
ERROR: Received unexpected end-of-file from SFTP server
Die Suche danach in Internet hat zur Lösung geführt. Auch wenn die bei mir etwas anders gelagert war als in den Quellen beschrieben. Aber im Kern war es das – in der Konfiguration des SSH-Daemons gab es ein Problem. Da wurde was bei der Installation des V-Servers durch den Provider nicht ganz korrekt konfiguriert.
Ein Lösungsvorschlag war, in der Datei /etc/ssh/sshd_config nach dem folgenden Eintrag zu suchen:
# Subsystem sftp /usr/lib/openssh/sftp-server
Auskommentieren beibehalten und das folgende ergänzen, war der Tipp:
Subsystem sftp internal-sftp
Dumm nur, dass der Kommentar bei mir nicht gesetzt war. Das SFTP-Subsystem war also schon aktiv.
Eine andere Quelle hat die Zeile genannt:
Subsystem sftp /usr/libexec/openssh/sftp-server
Und das hat mich zu der Lösung geführt, die für meinen Server gepasst hat. Denn diese Pfadangabe gab es bei mir nicht. Folge – ich habe verstanden, was es dem ersten Fall mit dem Verweis auf das interne SFTP auf sich hat.
Die Lösung bei mir war, den SFTP-Server von OpenSSH auszukommentieren, auf das interne SFTP umzustellen und dann mit
service sshd restart
den SSH-Daemon neu zu starten.
Jetzt scheint der Zugang mit SFTP bei allen Domains bzw. allen eingerichteten Usern zu funktionieren.