Einführung
SFTP (Safe File Transfer Protocol) ist Teil des SSH-Protokolls zur sicheren Übertragung von Dateien zwischen entfernten Systemen. Es ermöglicht Benutzern, Datei- und Verzeichnisberechtigungen auf Remote-Systemen anzuzeigen, zu verwalten und zu ändern.
In diesem Tutorial gehen wir die Befehle durch, die Sie mit SFTP verwenden können, und stellen Erklärungen, Optionen und Beispiele für jeden bereit.
Voraussetzungen
- Zugriff auf ein lokales System und einen Remote-Server, verbunden über ein öffentliches SSH-Schlüsselpaar.
- Eine funktionierende Internetverbindung.
- Zugriff auf das Terminalfenster.
Liste der SFTP-Befehle und -Optionen
Mit SFTP können Benutzer Daten zwischen einem entfernten SFTP-Server und einem lokalen Clientsystem übertragen. SFTP verwendet das SSH-Netzwerkprotokoll, um zwei Systeme zu verbinden, die sich einen öffentlichen SSH-Schlüssel teilen.
Die Verbindung mit dem SFTP-Server öffnet die SFTP-Shell-Oberfläche. Die SFTP-Shell-Schnittstelle unterstützt die folgenden Befehle:
Befehl | Beschreibung |
cd [path] | Ändern Sie das Verzeichnis auf dem Remote-Server in [path] . |
lcd [path] | Ändern Sie das Verzeichnis auf dem lokalen System zu [path] . |
chgrp [group ID] [path] | Ändern Sie den Gruppenbesitz in [group ID] für die Datei oder den Ordner unter [path] . |
chmod [mode] [path] | Eigentum ändern zu [mode] für die Datei oder den Ordner unter [path] . |
chown [user ID] [path] | Ändern Sie die Eigentümerschaft des Benutzers zu [user ID] für die Datei oder den Ordner unter [path] . |
help | Hilfetext anzeigen. |
get [remote path] [local path] | Übertragen Sie eine Datei oder ein Verzeichnis von [remote path] auf dem Remote-Server nach [local path] auf dem lokalen System. |
lls [options] [path] | Anzeigen der Auflistung für das Verzeichnis unter [path] auf dem lokalen System. Verwendet das ls Befehlsoptionen. |
ln [old path] [new path] | Erstellen Sie einen Symlink von [old path] zu [new path] auf dem Remote-Server. |
lmkdir [path] | Erstellen Sie ein Verzeichnis unter [path] auf dem lokalen System. |
lpwd | Zeigt das aktuelle lokale Verzeichnis an. |
ls [options] [path] | Anzeigen der Auflistung für das Verzeichnis unter [path] auf dem Remote-Server. Verwendet das ls Befehlsoptionen. |
lumask [mask] | Lokale Berechtigungsmaske auf [mask] setzen . |
mkdir [path] | Erstellen Sie ein Verzeichnis unter [path] auf dem Remote-Server. |
put [local path] [remote path] | Übertragen Sie eine Datei oder ein Verzeichnis von [local path] auf dem lokalen System zu [remote path] auf dem Remote-Server. |
pwd | Zeigt das aktuelle Remote-Verzeichnis an. |
exit | Verlassen Sie die SFTP-Schnittstelle. |
exit | Verlassen Sie die SFTP-Schnittstelle. |
rename [old path] [new path] | Benennen Sie eine Datei auf dem Remote-Server von [old path] um zu [new path] . |
rmdir [path] | Entfernen Sie ein Verzeichnis unter [path] auf dem Remote-Server. |
rm [path] | Entfernen Sie eine Datei, die sich unter [path] befindet auf dem Remote-Server. |
symlink [old path] [new path] | Erstellen Sie einen Symlink von [old path] zu [new path] auf dem Remote-Server. |
version | Anzeige der aktuellen Version von SFTP |
![command] | Führen Sie <strong>[command]</strong> aus in der lokalen Shell. |
! | Vorübergehend zur lokalen Shell wechseln. |
? | Hilfetext anzeigen. |
Mit SFTP verbinden
Die Verbindung mit SFTP verwendet die gleiche Syntax wie die Verbindung mit einem Remote-System mit SSH:
sftp [username]@[remote hostname or IP address]
Beispielsweise die Verbindung zu einem Server mit dem phoenixnap Benutzername an der IP-Adresse 192.168.100.7 :
sftp [email protected]
Wenn die Verbindung erfolgreich ist, wechselt die Shell zur SFTP-Schnittstelle, angezeigt durch sftp>
anstelle des aktuellen Benutzernamens:
Wenn Sie sich mit SFTP mit einem Remote-System verbinden, verwenden Sie die folgenden Optionen mit sftp
Befehl, um sein Verhalten zu ändern:
Option | Beschreibung |
-1 | Verwenden Sie beim Verbinden Version 1 des SSH-Protokolls. |
-4 | Nur IPv4-Adressen verwenden. |
-6 | Nur IPv6-Adressen verwenden. |
-A | Ermöglicht die Weiterleitung des SSH-Authentifizierungsagenten an den Remote-Server. |
-a | Versuchen Sie, unterbrochene Dateiübertragungen fortzusetzen. |
-B [buffer size] | Legen Sie eine benutzerdefinierte Puffergröße fest (der Standardwert ist 32.768 Byte). |
-b [batch file] | Geben Sie eine Batch-Datei an, um sftp zu starten Befehl im Stapelmodus. |
-C | Dateikomprimierung verwenden. |
-c [cipher] | Wählen Sie eine Chiffre aus, die beim Verschlüsseln von Daten für die Übertragung verwendet werden soll. |
-D [SFTP server path] | Stellen Sie eine Verbindung zu einem lokalen SFTP-Server her, ohne SSH zu verwenden. |
-F [SSH configuration file] | Geben Sie eine SSH-Konfigurationsdatei an, die beim Verbinden verwendet werden soll. |
-f | Dateien sofort nach der Übertragung auf die Festplatte leeren. |
-i [private key file] | Wählen Sie eine Datei aus, die den privaten Schlüssel für die Public-Key-Authentifizierung enthält. |
-J [destination] | TCP-Weiterleitung über das angegebene Ziel einrichten. |
-l [kbit/s] | Setzen Sie ein Limit für die Verbindungsbandbreite in kbit/s. |
-N | Ruhemodus deaktivieren. |
-o [SSH option] | Fügen Sie eine ssh-Befehlsoption hinzu, wenn Sie sich mit SFTP verbinden. |
-P [port number] | Stellen Sie einen Port für die Verbindung ein. |
-p | Dateiberechtigungen und Zugriffszeiten bei der Übertragung beibehalten. |
-q | Ruhemodus aktivieren. |
-R [number of requests] | Legen Sie die Anzahl der zulässigen gleichzeitigen Dateiübertragungsanfragen fest. |
-r | Verzeichnisse rekursiv übertragen. |
-S [client] | Geben Sie einen SFTP-Client an, den Sie für die Verbindung verwenden möchten. |
-s [SSH subsystem or SFTP server path] | Wählen Sie ein SSH2-Subsystem oder einen SFTP-Serverpfad aus. |
-v | Führen Sie ein ausführliches Sitzungsprotokoll. |
Verwenden Sie den exit
Befehl zum Beenden der aktuellen Verbindung:
exit
Übertragen von Dateien
Verwenden Sie get
und put
Befehle zum Erstellen einer Dateiübertragungsanforderung in SFTP. Der get
Der Befehl überträgt die Dateien von einem entfernten Server auf das lokale System, während der Befehl put
Befehl macht das Gegenteil.
Der get
Der Befehl verwendet die folgende grundlegende Syntax:
get [path to file]
Mit get
Befehl überträgt eine Datei vom Remote-Server zum Home des lokalen Systems Verzeichnis. Zum Beispiel:
get example01.txt
Andererseits mit put
Befehl überträgt eine Datei vom lokalen System zum Home des Remote-Servers Verzeichnis:
put example02.txt
Um die Datei in ein anderes Verzeichnis zu übertragen, hängen Sie den Namen des Verzeichnisses an das Ende von get
an oder put
Befehl:
get [path to file] [path to directory]
put [path to file] [path to directory]
Um den Namen der Datei auf dem lokalen System zu ändern, hängen Sie den neuen Dateinamen an das Ende des Befehls an:
get [path to file] [new file name]
put [path to file] [new file name]
Der get
und put
Befehle verwenden die folgenden Optionen:
Option | Beschreibung |
-a | Versuchen Sie, eine Dateiübertragung fortzusetzen. |
-f | Löschen Sie die Datei sofort nach der Übertragung auf die Festplatte. |
-p | Dateiberechtigungen und Zugriffszeiten während der Übertragung beibehalten. |
-R | Ein ganzes Verzeichnis rekursiv übertragen. Wenn Sie diese Option verwenden, definieren Sie einen Pfad zu einem Verzeichnis anstelle eines Pfads zu einer Datei. |
Dateiberechtigungen ändern
Mit SFTP können Sie auch Datei- und Verzeichnisberechtigungen auf dem Remote-Server ändern. Der chown
Befehl ändert den Dateibesitz für einzelne Benutzer:
chown [user ID] [path to file]
Im Gegensatz zum chown
Befehl, der eine Benutzer-ID erfordert, funktioniert der Befehl chmod genauso wie in der Standard-Shell:
chmod [permission] [path to file]
Eine weitere Option ist die Verwendung von chgrp
Befehl zum Ändern des Gruppenbesitzes einer Datei:
chgrp [group ID] [path to file]
Mit SFTP können Sie auch eine lokale umask einrichten und die Standardberechtigung für alle zukünftigen Dateien ändern, die auf das lokale System übertragen werden. Verwenden Sie die lumask
Befehl zum Einrichten einer neuen lokalen umask:
lumask [permission mask]
Dateien und Verzeichnisse verwalten
SFTP bietet Optionen, mit denen Benutzer Dateien sowohl auf dem lokalen System als auch auf dem Remote-Server überprüfen und verwalten können. Die ls
Mit dem Befehl können Sie die Dateien und Verzeichnisse auf dem Remote-Server auflisten. Zum Beispiel:
ls -l
Ebenso die lls
(lokale ls
)-Befehl listet Dateien und Verzeichnisse auf dem lokalen System auf:
lls -l
Die cd
und lcd
Befehle ändern das aktuelle Arbeitsverzeichnis auf dem entfernten Server bzw. dem lokalen System:
cd [path to directory on the remote server]
lcd [path to directory on the local system]
Mit dem Befehl mkdir wird ein Verzeichnis auf dem Remote-Server mit dem von Ihnen angegebenen Pfad erstellt:
mkdir [path to the new directory on the remote server]
Erstellen Sie beispielsweise Example_Directory auf der Startseite Verzeichnis:
mkdir Example_Directory
Das mkdir
Der Befehl hat keine Ausgabe, daher müssen Sie ls
verwenden Befehl, um das Ergebnis zu überprüfen:
Ähnlich dem lmkdir
Befehl erstellt ein Verzeichnis auf dem lokalen System:
lmkdir [path to the new directory on the local system]
Verwenden Sie dasselbe Beispiel:
lmkdir Example_Directory
Die rename
Befehl ändert den Namen einer Datei oder eines Verzeichnisses auf dem Remote-Server:
rename [old path] [new path]
Beispiel:Umbenennen von example01.txt zu sampledoc.txt :
rename example01.txt sampledoc.txt
Mit rm
Befehl entfernt eine Datei vom Remote-Server:
rm [path to file]
Zum Beispiel das Entfernen der sampledoc.txt Datei:
rm sampledoc.txt
Ebenso das rmdir
Befehl entfernt ein Verzeichnis vom entfernten Server:
rmdir [path to directory]
Beispiel:Entfernen von Example_Directory :
rmdir Example_Directory
Die ln
und symlink
Befehle erstellen einen symbolischen Link zu einer Datei oder einem Verzeichnis auf dem entfernten Server:
ln [old path] [new path]
symlink [old path] [new path]
Erstellen Sie beispielsweise einen Link zu example02.txt mit dem Namen beispiel_link mit ln
Befehl:
ln example02.txt example_link
Das pwd
zeigt als Ausgabe das aktuelle Arbeitsverzeichnis auf dem entfernten Server:
pwd
Andererseits ist der lpwd
Der Befehl erstellt eine Ausgabe, die das aktuelle Arbeitsverzeichnis auf dem lokalen System anzeigt:
lpwd
Lokale Shell-Befehle ausführen
Mit SFTP können Sie einen Befehl über die lokale Shell ausführen, indem Sie ein Ausrufezeichen (! ) vor dem Befehl. Dadurch können Benutzer Befehle ausführen, die nicht Teil der standardmäßigen SFTP-Shell auf dem lokalen System sind.
Beispielsweise unterstützt SFTP den tree
nicht Befehl unter Linux. Wenn Sie die lokale Shell verwenden, können Sie diesen Befehl in der SFTP-Schnittstelle ausführen:
!tree
Mit dem Ausrufezeichen (! ) ohne Befehl verschiebt den Benutzer vorübergehend zur lokalen Shell. Um zur SFTP-Shell zurückzukehren, verwenden Sie exit
Befehl.
Andere Befehle
Verwenden der help
oder ?
Befehle zeigt den Hilfetext für die SFTP-Schnittstelle an. Die Hilfe enthält eine Liste der in der SFTP-Shell verfügbaren Befehle.
Die version
zeigt die aktuell installierte Version des SFTP-Protokolls an:
SFTP-Spickzettel im PDF-Format
Nachfolgend finden Sie ein einseitiges Referenzblatt, das alle oben genannten SFTP-Befehle und -Optionen enthält. Speichern Sie es als PDF-Datei, indem Sie auf den Link unten klicken.
SFTP-Spickzettel HERUNTERLADEN