sftp nutzen: Dateien hochladen und runterladen

Dateien lädt man über das Terminal auf einen Server mit sftp hoch. Will man ganze Ordner hochladen, muss man einige Dinge beachten, sonst gibt man schnell frustriert auf.

Um den Umgang mit sftp besser zu illustrieren, zeige ich Dir anhand eines Beispieles, wie es funktioniert. Auf meinem Rechner liegt der Ordner sftp_beispiel auf dem Desktop, der wie folgt strukturiert ist.

sftp_beispiel/
├── bild-01.jpg
├── bild-02.jpg
├── bild-03.jpg
├── index.html
└── unter_ordner
    ├── bild-04.jpg
    ├── bild-05.jpg
    ├── index.html
    └── unter_unter_ordner
        ├── bild-06.jpg
        ├── bild-07.jpg
        ├── bild-08.jpg
        ├── bild-09.jpg
        ├── bild-10.jpg
        └── index.html

Einloggen per sftp

Standardmäßig verwendet SFTP das SSH-Protokoll, um eine sichere Verbindung zu authentifizieren und herzustellen. Aus diesem Grund sind die gleichen Authentifizierungsmethoden verfügbar, die in SSH vorhanden sind.

Obwohl Passwörter einfach zu verwenden und standardmäßig eingerichtet werden, empfehle ich Dir, SSH-Schlüssel zu erstellen und Deinen öffentlichen Schlüssel auf jedes System zu übertragen, auf das Du zugreifen musst. Dies ist sicherer und spart Dir auf lange Sicht Zeit. Wie Du einen Schlüssel erstellst, erfährst Du bei Deinem Provider.

Beachte, dass nicht jedes Webhosting-Paket den Zugang per ssh ermöglicht.

Wenn Du eine Verbindung zum Server über SSH herstellen kannst, hast Du alle erforderlichen Voraussetzungen erfüllt, um SFTP zum Verwalten von Dateien zu verwenden. Den SSH-Zugriff testet Du mit dem folgenden Befehl:

$ ssh benutzer_name@ftp.server.de

Wenn der Login funktioniert, tippst Du…

$ exit

…um Dich wieder auszuloggen. Jetzt kannst Du eine SSH-Verbindung aufbauen und eine SFTP-Sitzung starten.

Um Dateien runter- oder hochzuladen, loggst Du Dich im ersten Schritt also mit sftp ein. Dazu benötigt man, wie bei einem normalen FTP-Programm die Adresse des Servers, einen Nutzernamen und ein Passwort. Im ersten Schritt kontaktiert man den Server. Anschließend will der Server das Passwort haben.

$ sftp -r benutzer_name@ftp.server.de

Die Option -r stellt im Vorfeld bereits den rekursiven Upload und Download ein. Das bedeutet, dass Du auch gleich in einem Rutsch Dateien runter- oder hochladen kannst. sftp geht dann alle Verzeichnisse durch. Sonst müsstest Du für jede Datei extra einen Befehl eingeben.

Wie auf Deinem eigenen Rechner kannst Du mit sftp folgende Befehle ausführen, die im Kapitel »Befehle für Dateien und Ordner« näher erklärt werden. Hier noch einmal eine Kurzübersicht:

Befehl Beschreibung
cd Wechsel das Verzeichnis – z.B. cd ..
chmod ändere die Zugriffsrechte von Dateien
df df steht für disk free und gibt den freien Festplatten-Platz an.
ls liste Dateien im Ordner auf
mkdir erstelle einen Ordner
rm lösche eine Datei

Mögliche Befehle mit sftp

Während die obigen Befehle auf dem Server funktionieren, können einige Befehle auch auf dem lokalen Rechner ausgeführt werden. Dazu stellst Du einfach ein l für local dem Befehl voran. So wird aus cd einfach lcd und ls wird zu lls. Um nachzuschauen, in welchem Verzeichnis Du Dich auf Deinem Rechner befindest, tippst Du einfach lpwd und das Terminal gibt Dir den Pfad aus.

Hier noch einmal die wichtigsten Befehle, um auf Deinem eigenen Rechner während einer sftp-Session zu navigieren:

  • lcd
  • lls
  • lmkdir
  • lpwd

Mit help kannst Du Dir jederzeit die Hilfe von sftp aufrufen. Sie listet Dir alle Optionen und Erklärungen auf.

Mit Hilfe einer Anzahl von Befehlen kannst Du durch die Dateihierarchie des entfernten Systems navigieren. Zur Orientierung dient pwd. Mit pwd findest Du heraus in welchem Verzeichnis Du Dich aktuell auf der Server befindest. Wie normalerweise im Terminal auch, gibt Dir der folgenden Befehl den Pfad aus:

$ pwd

put und get – Hochladen und Runterladen

Um Daten hoch- und runterzuladen nutzt Du put und get. Mit put schiebst Du Daten auf den Server und mit get bekommst Du Daten bzw. lädst sie herunter.

sftp: Ordner mit Unterordnern hochladen

Vorsicht! – Damit Du Dateien und Unterordner eines Ordners von Deinem Rechner auf den Server hochladen kannst, musst Du zuerst das Verzeichnis auf dem Server anlegen. Sonst beschwert sich sftp mit Couldn’t canonicalise: No such file or directory.

$ mkdir sftp_beispiel

sftp beenden

Um sftp zu beenden, tippt man einfach exit in das Terminal und loggt damit aus:

sftp> exit