Dateiübertragungsprotokoll (FTP) war früher eine weit verbreitete Methode für die Fernübertragung von Dateien oder Daten. Es überträgt die Informationen jedoch in einem unverschlüsselten Format, was es zu einer unsicheren Kommunikationsmethode macht.
Wie wir alle wissen, FTP ist nicht sicher, da alle Übertragungen im Klartext erfolgen, was bedeutet, dass jeder, der Netzwerkpakete abhört, die Daten leicht lesen kann.
Dies ist der Grund dafür, FTP sollte nur in begrenzten Fällen oder in Netzen, denen Sie voll vertrauen, verwendet werden. Mit der Zeit werden Protokolle wie SCP (Sicheres Kopieren) und SSH (Sichere Shell) haben diese Sicherheitsbedenken durch die Einführung verschlüsselter Schichten für sichere Übertragung von Daten zwischen entfernten Systemen.
[ You might also like: Best Command-Line FTP Clients for Linux ]
Was ist sFTP?
sFTP (Sicheres Dateiübertragungsprotokoll) ist ein Teil des SSH Protokollsuite, die über das SSH-Protokoll auf dem Standard-Port läuft 22 läuft, um eine sichere Verbindung herzustellen. SFTP wurde in viele GUI-Tools integriert, wie z. B. FileZilla, WinSCPund FireFTP.
Sie können auf Folgendes zugreifen sFTP vom Linux-Terminal aus mit dem Befehl sftp Kommando, das oft auf den folgenden Systemen vorinstalliert ist den meisten Linux-Distributionen.
which sftp
Wenn dies einen Pfad ergibt wie /usr/bin/sftpzurückgibt, sind Sie startklar.
Sicherheitswarnung: Bitte legen Sie nicht die SSH (Sichere Shell) mit dem öffentlichen Internet zu verbinden, da dies ein Sicherheitsrisiko darstellt. Erlauben Sie stattdessen den Zugriff nur von bestimmten IP-Adressen, die für die Übertragung oder Verwaltung von Dateien auf dem entfernten System verwendet werden.
Verwandte Artikel:
- Wie man OpenSSH-Server sichert und härtet
- Wie man den SSH-Port unter Linux ändert
- Wie man Dateien mit Rsync über einen nicht standardmäßigen SSH-Port synchronisiert
- 5 bewährte Praktiken zur Sicherung und zum Schutz von SSH-Servern
- 10 Beispiele für den Wget-Befehl unter Linux
Dieser Artikel führt Sie durch die reale Welt sFTP Befehlsbeispiele, von der Anmeldung über die Navigation in Verzeichnissen bis hin zum Hoch- und Herunterladen von Dateien. Wir behandeln auch Stapelübertragungen, Skripting und Tipps zur Automatisierung mit sFTP.
1. Wie man sich mit SFTP verbindet
Standardmäßig wird zur Authentifizierung und zum Aufbau einer SFTP-Verbindung das gleiche SSH-Protokoll verwendet. Um eine SFTP-Sitzung zu starten, geben Sie den Benutzernamen und den Hostnamen oder die IP-Adresse der Gegenstelle an der Eingabeaufforderung ein.
Sobald die Authentifizierung erfolgreich war, sehen Sie eine Shell mit dem sftp> Eingabeaufforderung.
sftp [emailprotected]
Wenn SSH auf einem eigenen Port läuft (z.B. 2222), verwenden Sie:
sftp -oPort=2222 [emailprotected]

Sobald Sie sich im sftp-Eingabeaufforderungüberprüfen Sie die verfügbaren Befehle durch Eingabe von ‘?‘ oder ‘help‘ an der Eingabeaufforderung.
sftp> ?

2. Aktuelles Arbeitsverzeichnis prüfen
Wenn Sie mit einem entfernten Server verbunden sind über sFTPist es wichtig, zu wissen, wo man sich befindet, sowohl lokal (auf dem eigenen Rechner) als auch aus der Ferne (auf dem Server). sFTP bietet zwei einfache Befehle für diesen Zweck: lpwd und pwd.
Der Befehl lpwd (lokales Druck-Arbeitsverzeichnis) wird verwendet, um Ihr aktuelles lokales Verzeichnis auf Ihrem eigenen Rechner anzuzeigen, von dem aus Sie gerade arbeiten. Auf der anderen Seite kann der Befehl pwd (Arbeitsverzeichnis drucken) zeigt Ihr aktuelles Verzeichnis auf dem entfernten Server an.
So sehen sie in einer aktiven sFTP-Sitzung aus:
sftp> lpwd Local working directory: / sftp> pwd Remote working directory: /tecmint/
lpwdhilft Ihnen, zu überprüfen, wohin die Dateien heruntergeladen werden.pwdhilft Ihnen zu bestätigen, woher die Dateien hochgeladen werden.
Die Kenntnis dieser Befehle ist besonders nützlich, wenn Sie während der Dateiübertragung durch mehrere Verzeichnisse navigieren müssen.
3. Auflisten von Dateien mit sFTP
Sobald Sie mit einem entfernten Server verbunden sind, können Sie mit sFTPmüssen Sie oft Verzeichnisse durchsuchen, um die verfügbaren Dateien auf dem entfernten System und auf Ihrem lokalen Rechner zu überprüfen.
Um Dateien auf dem entfernten Server aufzulisten, verwenden Sie einfach die ls-Befehl, der den Inhalt des aktuellen Verzeichnisses auf dem entfernten Rechner anzeigt.
sftp> ls
Wenn Sie detaillierte Dateiinformationen wie Größe und Berechtigungen sehen möchten, können Sie auch die Funktion -l Option verwenden:
sftp> ls -l
Wenn Sie nun Dateien auf Ihrem lokalen System (dem Rechner, von dem aus Sie sFTP ausführen) auflisten möchten, verwenden Sie die Option lls Befehl, der sich wie der reguläre ls Befehl verhält, aber den Inhalt Ihres lokalen Verzeichnisses anzeigt.
sftp> lls
Sie können auch Optionen übergeben an lls übergeben, um Dateien im Langformat aufzulisten:
sftp> lls -l
Verwendung von ls und lls hilft Ihnen bei der effizienten Verwaltung von Dateien zwischen lokalen und entfernten Systemen über die sFTP-Schnittstelle.
🔒 Profi-Tipp: Sind Sie es leid, immer wieder die gleichen Linux-Befehle auszuführen? Lernen Sie, wie Sie sie mit unserem Bash-Skripting für Anfänger-Kurs und beginnen Sie mit der Erstellung von Skripten, um Zeit zu sparen und Ihre täglichen Aufgaben zu vereinfachen.
4. Datei mit sFTP hochladen
Nachdem Sie mit dem sftp-Befehl eine Verbindung zum entfernten Server hergestellt haben, können Sie mit dem Befehl put Befehl verwenden, um eine Datei hochzuladen. Nehmen wir zum Beispiel an, Sie haben eine Datei namens local.profile auf Ihrem lokalen Rechner, die Sie auf den entfernten Server übertragen möchten.
put local.profile
Wenn Sie diesen Befehl ausführen, lädt sFTP die Datei von Ihrem aktuellen lokalen Verzeichnis in das aktuelle Verzeichnis auf dem entfernten Server hoch.
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Uploading local.profile to /home/username/local.profile
Wenn Sie mehrere Dateien auf einmal hochladen möchten, können Sie Platzhalterzeichen mit dem Befehl mput verwenden. Zum Beispiel, um alle .txt Dateien aus dem aktuellen lokalen Verzeichnis hochzuladen:
mput *.txt
Tipp: Vor dem Hochladen ist es immer gut, die lokalen und entfernten Arbeitsverzeichnisse zu überprüfen und einzustellen, indem Sie die lcd und cd Befehle.
Zum Beispiel:
lcd /home/user/documents cd /var/www/html put index.html
5. Herunterladen von Dateien mit sFTP
Um eine einzelne Datei von einem entfernten System in Ihr aktuelles lokales Verzeichnis herunterzuladen, verwenden Sie den Befehl get gefolgt von dem Dateinamen.
sftp> get SettlementReport_1-10th.xls
Wenn Sie mehrere Dateien auf einmal herunterladen möchten, können Sie den Befehl mget Befehl verwenden, der besonders nützlich ist, wenn Sie mit einer Reihe von Berichten, Protokollen oder Datendateien zu tun haben:
sftp> mget *.xls
Der Befehl mget verwendet Platzhaltermuster wie *.xls um alle Dateien mit der Bezeichnung .xls aus dem entfernten Verzeichnis zu holen und in Ihr lokales Arbeitsverzeichnis zu kopieren.
6. Umbenennen von Dateien beim Herunterladen mit sFTP
Standardmäßig wird die get Befehl die Datei unter ihrem ursprünglichen Namen herunter. Wenn Sie die Datei jedoch lokal unter einem anderen Namen speichern möchten, können Sie ein zweites Argument mit dem gewünschten Namen angeben.
sftp> get SettlementReport_1-10th.xls Report_Jan.xls
In diesem Fall wird die Ferndatei SettlementReport_1-10th.xls heruntergeladen und lokal gespeichert als Report_Jan.xls.
7. Wechseln von Verzeichnissen in sFTP
Um das entfernte Verzeichnis zu wechseln (das Verzeichnis auf dem Server, mit dem Sie verbunden sind), verwenden Sie die Funktion cd-Befehl gefolgt von dem gewünschten Pfad.
sftp> cd test
Sie können Ihren aktuellen Standort auf dem entfernten System überprüfen, indem Sie Folgendes ausführen:
sftp> pwd
Um in ein anderes lokales Verzeichnis (das Dateisystem Ihres aktuellen Computers) zu wechseln, verwenden Sie den Befehl lcd Befehl:
sftp> lcd Documents
Um den Wechsel des lokalen Verzeichnisses zu bestätigen, können Sie diesen Befehl ausführen:
sftp> lpwd
8. Erstellen von Verzeichnissen mit sFTP
Um ein neues Verzeichnis auf dem entfernten Server zu erstellen, können Sie den Befehl Befehl mkdir in der sFTP-Eingabeaufforderung:
mkdir test
Dieser Befehl erstellt ein Verzeichnis namens test im aktuellen Arbeitsverzeichnis auf dem entfernten Server. Sie können dann Dateien in dieses Verzeichnis hochladen, indem Sie puthochladen, oder in dieses Verzeichnis wechseln mit cd.
Wenn Sie hingegen innerhalb der sFTP-Sitzung ein Verzeichnis auf Ihrem lokalen Rechner erstellen möchten, verwenden Sie den Befehl lmkdir Befehl:
lmkdir Documents
Dies erstellt ein Verzeichnis namens Documents in Ihrem aktuellen lokalen Arbeitsverzeichnis. Sie können dies verwenden, bevor Sie mehrere Dateien in einen speziellen Ordner herunterladen, indem Sie die mget Befehl.
9. Verzeichnisse mit sFTP entfernen
Um eine Datei zu löschen, verwenden Sie die rm-Befehl innerhalb der sFTP-Eingabeaufforderung. Wenn Sie zum Beispiel eine Datei namens Report.xls aus dem aktuellen Remote-Verzeichnis entfernen möchten, führen Sie aus:
rm Report.xls
Um ein Verzeichnis zu entfernen, verwenden Sie die rmdir Befehl.
rmdir sub1
Wichtiger Hinweis: sFTP kann nur leere Verzeichnisse löschen. Wenn das Verzeichnis Dateien oder Unterverzeichnisse enthält, müssen Sie diese Inhalte zuerst mit rmlöschen, oder sie rekursiv mit anderen Werkzeugen wie SSH oder rsync.
Vergewissern Sie sich also vor dem Entfernen eines Verzeichnisses, dass es leer ist. Andernfalls wird die rmdir Befehl mit einer Fehlermeldung wie der folgenden fehlschlagen:
rmdir failed: Directory not empty
Verwendung von sFTP mit SSH-Schlüsseln (keine Passwortabfrage)
Wenn Sie vermeiden möchten, dass Sie bei jeder Verbindung über sFTP Ihr Passwort eingeben müssen, können Sie eine SSH-Schlüssel-basierte Authentifizierung mit einem SSH-Schlüsselpaar auf Ihrem lokalen Rechner einrichten.
ssh-keygen -t rsa -b 4096
Sie können einfach die Taste Enter um den Standardspeicherort der Datei zu akzeptieren (~/.ssh/id_rsa) und setzen Sie optional eine Passphrase, die zwei Dateien erzeugt: einen privaten Schlüssel (id_rsa) und einen öffentlichen Schlüssel (id_rsa.pub).
Als nächstes kopieren Sie Ihren öffentlichen Schlüssel auf den entfernten Server:
ssh-copy-id user@remote_host
Danach können Sie mit sFTP eine Verbindung zum Server herstellen, ohne ein Passwort eingeben zu müssen:
sftp user@remote_host
10. Beenden der sFTP-Shell
Um die sFTP-Shell zu verlassen und die Sitzung mit dem Remote-Server zu beenden, müssen Sie nur Folgendes eingeben:
bye Or exit
Aber es gibt noch einen weiteren hilfreichen Trick, den Sie kennen sollten.
Wenn Sie sich in einer sFTP-Sitzung befinden und vorübergehend in Ihre lokale Linux-Shell wechseln müssen, ohne die Verbindung zur entfernten sFTP-Sitzung zu trennen, können Sie die Funktion ! Befehl verwenden, mit dem Sie Folgendes ausführen können lokale Linux-Befehle direkt aus der sFTP-Umgebung heraus.
sftp> !
Jetzt können Sie jeden normalen Linux-Befehl ausführen.
ls -l
Wenn Sie mit der lokalen Shell fertig sind und zur sFTP-Eingabeaufforderung zurückkehren möchten, geben Sie einfach ein:
exit
Nach der Ausführung von exitkehren Sie wie gezeigt zur sFTP-Sitzung zurück:
exit Shell exited with status 1 sftp>
Wenn Sie schließlich bereit sind, die sFTP-Sitzung vollständig zu verlassen, führen Sie aus:
sftp> bye
Schlussfolgerung
Die SFTP ist ein sehr nützliches Tool für die Verwaltung von Servern und die Übertragung von Dateien von und zu (Lokal und Entfernt). Wir hoffen, dass diese Beispiele Ihnen helfen werden, die Verwendung von SFTP bis zu einem gewissen Grad.

