SFTP-Befehlsreferenz
Jeder Befehl des OpenSSH-Clients sftp mit Syntax und Beispielen - Verbinden, Navigieren, Übertragen, Berechtigungen und Stapelverarbeitung. Funktioniert identisch unter Windows 10/11, macOS und Linux, die alle den OpenSSH-Client mitbringen.
Aktualisiert im Juli 2026
Mit einem Server verbinden
SFTP läuft über SSH (standardmäßig Port 22), daher funktionieren Authentifizierung und Hostschlüsselprüfung genau wie bei ssh. Diese Schalter stehen auf der Kommandozeile, bevor die Sitzung beginnt:
| Befehl / Schalter | Wirkung | Beispiel |
|---|---|---|
sftp user@host | Startet eine interaktive SFTP-Sitzung. | sftp alice@example.com |
-P port | Verbindet mit einem abweichenden Port (Achtung: großes P, anders als bei ssh). | sftp -P 2222 alice@example.com |
-i keyfile | Authentifiziert mit einem bestimmten privaten SSH-Schlüssel. | sftp -i ~/.ssh/deploy_key alice@example.com |
-b file | Stapelbetrieb - führt Befehle aus einer Datei ohne Interaktion aus. | sftp -b upload.txt alice@example.com |
-r | Macht get/put für die gesamte Sitzung rekursiv. | sftp -r alice@example.com |
sftp user@host:pfad | Holt eine Datei direkt und beendet sich (keine interaktive Sitzung). | sftp alice@example.com:/logs/app.log |
Wird die Verbindung abgewiesen oder bleibt sie hängen, prüfen Sie den Server zuerst mit dem SFTP-Verbindungstester und sehen Sie mit dem SFTP-Authentifizierungsprüfer nach, welche Verfahren er akzeptiert.
Herunterladen und Hochladen
| Befehl | Wirkung | Beispiel |
|---|---|---|
get | Lädt eine Datei vom Server herunter. | get report.pdf |
get -r | Lädt ein Verzeichnis mit seinem gesamten Inhalt herunter. | get -r backups |
put | Lädt eine lokale Datei auf den Server hoch. | put site.zip |
put -r | Lädt ein Verzeichnis rekursiv hoch. | put -r dist |
mget | Lädt mehrere Dateien herunter, die einem Muster entsprechen. | mget *.log |
mput | Lädt mehrere Dateien hoch, die einem Muster entsprechen. | mput *.html |
reget | Setzt einen teilweise heruntergeladenen Download fort. | reget big-backup.tar |
reput | Setzt einen teilweise hochgeladenen Upload fort. | reput big-backup.tar |
progress | Schaltet die Fortschrittsanzeige der Übertragung ein oder aus. | progress |
Einen Schalter ascii/binary gibt es nicht - SFTP überträgt Dateien immer Byte für Byte, sodass nichts durch die Umwandlung von Zeilenenden beschädigt wird.
Stapelbetrieb und Skripting
Für unbeaufsichtigte Übertragungen schreiben Sie die Befehle zeilenweise in eine Datei und starten sftp im Stapelbetrieb. Der Stapelbetrieb bricht beim ersten Fehler ab und setzt eine Authentifizierung per Schlüssel voraus - er kann nicht nach einem Passwort fragen:
# upload.txt cd /var/www/site lcd C:\Projects\site\dist put -r . bye C:\> sftp -b upload.txt -i C:\keys\deploy_key deploy@example.com
Das funktioniert, doch jede wiederkehrende Aufgabe bedeutet, ein Skript, einen Schlüssel und einen Eintrag in der Aufgabenplanung zu pflegen. Wenn Sie stattdessen lieber in einer Oberfläche festlegen möchten, dass ein Ordner jede Nacht um 2:00 Uhr hochgeladen wird - mit Wiederholungen, Benachrichtigungen und Verlauf -, ist das genau die Aufgabe der geplanten Übertragungen von FTPie.
Über SFTP-Befehle
SFTP (SSH File Transfer Protocol) ist nicht FTP über SSH, sondern ein eigenständiges Protokoll auf der SSH-Verbindungsschicht, definiert in der IETF-Reihe draft-ietf-secsh-filexfer. Der Befehl sftp unter Windows, macOS und Linux ist die Client-Implementierung von OpenSSH, und deren Befehlssatz dokumentiert diese Seite. Da alles innerhalb von SSH läuft, trägt ein einziger offener Port (22) Authentifizierung, Befehle und verschlüsselte Daten - keine Portbereiche für den Passivmodus, keine TLS-Zertifikate.
Sie kommen vom klassischen FTP? Die Befehlssätze überschneiden sich, unterscheiden sich aber in wichtigen Punkten - siehe die FTP-Befehlsreferenz für ftp.exe und die Protokollbefehle aus RFC 959.
Häufige Fragen
Nein. SFTP ist ein anderes Protokoll, das über SSH läuft, und sein Befehlssatz ist ähnlich, aber nicht identisch. Kernbefehle wie get, put, cd, ls und bye funktionieren in beiden, doch SFTP ergänzt Unix-typische Befehle wie chmod, ln und df, nutzt reget/reput zum Fortsetzen von Übertragungen und kennt keinen ascii-/binary-Modus - jede Übertragung ist binär. Befehle wie mdelete, hash oder literal aus klassischen FTP-Clients gibt es in sftp nicht.
Verwenden Sie den Schalter -r (rekursiv): get -r projektordner lädt einen ganzen Verzeichnisbaum herunter, put -r projektordner lädt einen hoch. Das Zielverzeichnis darf noch keine kollidierenden Dateien enthalten. Sie können die Sitzung auch mit sftp -r user@host starten, dann sind Übertragungen standardmäßig rekursiv.
Mit reget dateiname setzen Sie einen teilweise heruntergeladenen Download fort, mit reput dateiname einen Upload. Die unvollständige Datei muss auf der empfangenden Seite noch vorhanden sein; sftp macht dann dort weiter, wo es aufgehört hat, statt von vorn zu beginnen.
Ja. Windows 10 (ab 1809) und Windows 11 liefern den OpenSSH-Client mit, Sie können also sftp user@host direkt in der Eingabeaufforderung oder in PowerShell ausführen - ganz ohne Zusatzsoftware. Die Befehle auf dieser Seite funktionieren unter Windows, macOS und Linux gleichermaßen.
Schreiben Sie einen Befehl pro Zeile in eine Textdatei und führen Sie sftp -b batch.txt user@host aus. Der Stapelbetrieb setzt eine nicht-interaktive Authentifizierung voraus, praktisch also, dass Sie zuvor eine SSH-Schlüsselanmeldung eingerichtet haben. Für wiederkehrende Aufgaben - geplante Uploads, Sicherungen, Abgleiche - erspart Ihnen ein Client mit eingebautem Zeitplaner die Pflege von Skripten und Einträgen in der Aufgabenplanung.
Lieber ein grafischer SFTP-Client?
FTPie ist ein moderner SFTP-Client für Windows mit Authentifizierung per SSH-Schlüssel, Hostschlüsselprüfung, rekursiven Übertragungen per Drag-and-drop und einem eingebauten Zeitplaner - kostenlos für bis zu 3 Serververbindungen.
FTPie kostenlos herunterladen