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
Hallo,
... das Schöne an SFTP ist aus meiner Sicht, dass es sich leicht in Dateimanager einbinden lässt. Das Dateisystem auf dem SSH-Server lässt dann damit dann genauso nutzen wie das lokale Dateisystem.
Dies gilt meiner Erfahrung nach mindestens für:
Insofern ist allein mit SSH bereits ein einfacher Fileserver gegeben. Insofern könnte SFTP in manchen Fällen eine Alternative für Samba oder NFS sein