Was ist SFTP?

Mi, 11. August 2021, Ralf Hersel

SFTP steht für Secure File Transfer Protocol. Das "S" steht manchmal auch für SSH (oder Secure Shell), den sicheren, verschlüsselten Tunnel, über den der Dateiübertragungsdienst läuft. SFTP ist eine beliebte Methode für die sichere Übertragung von Dateien über entfernte Systeme. Der Befehl sftp ist normalerweise Teil des OpenSSH-Pakets. Er wurde als Erweiterung von SSH v2.0 entwickelt, um die Möglichkeiten der sicheren Dateiübertragung zu verbessern. Die sftp-Befehlszeilenschnittstelle wurde so gestaltet, dass sie dem ftp-Befehl ähnlich ist.

Im Vergleich zum herkömmlichen FTP-Protokoll bietet SFTP alle Funktionen von FTP, ist aber sicherer und einfacher zu konfigurieren. Im Gegensatz zu FTP verwendet SFTP einen einzigen Daten- und Kontrollkanal. Bevor die Informationen zwischen zwei Computern ausgetauscht werden, überprüft SFTP die Identität des Clients, und sobald eine gesicherte Verbindung hergestellt ist, werden die verschlüsselten Informationen gesendet.


In fast allen Fällen ist SFTP aufgrund der zugrundeliegenden Sicherheitsmerkmale gegenüber FTP vorzuziehen. Was ist der Unterschied zwischen SCP und SFTP? SCP kann nur zum Übertragen von Dateien verwendet werden und ist nicht interaktiv. SFTP ist komplizierter und erlaubt interaktive Befehle, z. B. zum Erstellen von Verzeichnissen, Löschen von Verzeichnissen und Dateien usw.

Man kann eine Verbindung zu SFTP über einen Client wie FileZilla herstellen, ansonsten kann auf der Kommandozeile mit einfachen Befehlen verwendet werden. SFTP bietet auch mehrere Methoden zur Authentifizierung einer Verbindung, z. B. Benutzername und Passwort, SSH-Schlüssel oder Kombinationen davon. Um eine Verbindung aufzubauen, verwendet man dieses Schema:

sftp [USER]@[SERVER]
zum Beispiel:
sftp ralf@einserver.com

Nach der Eingabe des Passwortes kann mit dem entfernten Server kommuniziert werden. Dafür steht eine Vielzahl an Kommandos zur Verfügung:

Kommando Funktion
cd Verzeichnis auf dem Server wechseln
chmod Dateirechte auf dem Server ändern
chown Dateieigentümer auf dem Server ändern
exit Verbindung schliessen und SFTP verlassen
get Datei vom Server zum lokalen Computer kopieren
lcd Verzeichnis auf dem lokalen Computer wechseln
lls Inhalt des lokalen Verzeichnisses anzeigen
lmkdir Lokales Verzeichnis erstellen
lpwd Arbeitsverzeichnis auf dem lokalen Computer anzeigen
ls Inhalt des Verzeichnisses auf dem Server anzeigen
mkdir Verzeichnis auf dem Server erstellen
put Datei vom lokalen Computer zum Server kopieren
pwd Arbeitsverzeichnis auf dem Server anzeigen
rename Datei auf dem Server umbenennen
rm Datei auf dem Server löschen
rmdir Leeres Verzeichnis auf dem Server löschen

Möchte man zum Beispiel eine Datei vom Server herunterladen, gelingt das mit diesem Befehl:

sftp> get dateiname.pdf

Das Hochladen einer Datei vom lokalen Computer zum Server funktioniert so:

sftp> put dateiname.pdf

Wie man sieht, entsprechen die Kommandos denjenigen, die man auch sonst im Terminal verwendet. Weitergehende Informationen und Beispiele finden sich auf der man-Page von SFTP:

Quelle: https://www.mankier.com/1/sftp