Servergilt für Debian 12, Raspberry Pi OS
Wie lade ich Dateien auf meinen Linux-Server, per FTP oder SFTP?
Dateien sollen vom PC auf den Raspberry Pi oder den Server, per Hand oder automatisch aus einem Skript. Ältere Anleitungen richten dafür einen FTP-Server ein. Ist das heute noch der richtige Weg?
Lösung
Kurz: Meist nicht. Läuft auf dem Rechner SSH, gibt es SFTP schon, ohne Zusatzserver und verschlüsselt. FileZilla und WinSCP verbinden sich mit denselben Zugangsdaten wie SSH auf Port 22. Im Skript übernimmt scp oder sftp den Upload.
Per Hand: SFTP mit FileZilla oder WinSCP
- Im Programm eine neue Verbindung anlegen und als Protokoll SFTP wählen.
- Server: Adresse oder Name des Pi, Port 22, Benutzername und Passwort wie bei SSH.
- Verbinden. Beim ersten Mal fragt das Programm nach dem Schlüssel des Servers, einmal bestätigen.
Wer bei WinSCP Dateien wie .htaccess vermisst: Wie man versteckte Dateien einblendet, steht auf
redirect301.de unter WinSCP: versteckte Dateien anzeigen.
Im Skript: scp und sftp
scp -p bericht.pdf daniel@raspberrypi.local:/srv/daten/
Damit das ohne Passwortabfrage läuft, braucht der Rechner, der hochlädt, einen SSH-Schlüssel:
ssh-keygen -t ed25519
ssh-copy-id daniel@raspberrypi.local
Für mehrere Befehle am Stück liest sftp -b befehle.txt daniel@raspberrypi.local eine Datei mit
Anweisungen wie put und mkdir ab.
Nachträge
Wann brauche ich doch einen FTP-Server?
Wenn ein Gerät nur FTP kann, etwa eine ältere Überwachungskamera oder ein Scanner, der auf einen Server
speichert. Dann ist vsftpd der schlanke Weg:
sudo apt install vsftpd
In /etc/vsftpd.conf write_enable=YES setzen, damit Uploads erlaubt sind, und
den Dienst mit sudo systemctl restart vsftpd neu starten. FTP überträgt Passwort und Daten
unverschlüsselt, deshalb nur im Heimnetz einsetzen und nie aus dem Internet erreichbar machen.
Wie lade ich per FTP aus einem Skript hoch?
curl kann das ohne Zusatzprogramm:
curl -T bericht.pdf --user benutzer ftp://192.168.178.50/upload/
Ohne Passwort in der Befehlszeile fragt curl nach. Für Skripte legt man die Zugangsdaten in eine
~/.netrc und ruft curl mit --netrc auf.
FileZilla meldet „GnuTLS error -12“
Das passiert bei FTP mit Verschlüsselung, wenn der Server die Verbindung unerwartet trennt. Ursachen und Lösungen stehen auf redirect301.de unter FileZilla GnuTLS error -12.