SFTP (SSH File Transfer Protocol) ist ein sicheres Dateiprotokoll, das für den Zugriff, die Verwaltung und die Übertragung von Dateien über einen verschlüsselten SSH-Transport verwendet wird.
Im Vergleich zum herkömmlichen FTP-Protokoll bietet SFTP alle Funktionen von FTP, ist jedoch sicherer und einfacher zu konfigurieren.
Im Gegensatz zu SCP, das nur Dateiübertragungen unterstützt, können Sie mit SFTP eine Reihe von Vorgängen an entfernten Dateien ausführen und Dateiübertragungen fortsetzen.
In diesem Tutorial zeigen wir Ihnen, wie Sie Linux sftp
verwenden Befehl.
Bevor Sie beginnen #
Um Dateien per SFTP übertragen zu können, benötigen Sie Schreibrechte auf dem Remote-System.
Beim Übertragen großer Dateien wird empfohlen, sftp
auszuführen Befehl innerhalb eines Bildschirms oder einer tmuxsession.
Das Verzeichnis, von dem aus Sie sftp
ausführen Befehl ist das lokale Arbeitsverzeichnis.
Herstellen einer SFTP-Verbindung #
SFTP arbeitet nach einem Client-Server-Modell. Es ist ein Subsystem von SSH und unterstützt alle SSH-Authentifizierungsmechanismen.
Um eine SFTP-Verbindung zu einem Remote-System herzustellen, verwenden Sie den sftp
Befehl gefolgt vom Benutzernamen des Remote-Servers und der IP-Adresse oder dem Domänennamen:
sftp remote_username@server_ip_or_hostname
Wenn Sie die Verbindung zum Host mithilfe der Kennwortauthentifizierung herstellen, werden Sie aufgefordert, das Benutzerkennwort einzugeben.
Sobald die Verbindung hergestellt ist, wird Ihnen der sftp
angezeigt Eingabeaufforderung, und Sie können mit der Interaktion mit dem Remote-Server beginnen:
Connected to remote_username@server_ip_or_hostname.
sftp>
Wenn der Remote-SSH-Server nicht auf dem Standardport 22 lauscht, verwenden Sie den -P
Option zur Angabe des SFTP-Ports:
sftp -P custom_port remote_username@server_ip_or_hostname
SFTP-Befehle #
Die meisten SFTP-Befehle sind ähnlich oder identisch mit den Linux-Shell-Befehlen.
Um eine Liste aller verfügbaren SFTP-Befehle zu erhalten, geben Sie help
ein , oder ?
.
help
Dies gibt eine lange Liste aller verfügbaren Befehle aus, einschließlich einer kurzen Beschreibung jedes Befehls:
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
...
...
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
Navigation mit SFTP #
Wenn Sie beim Remote-Server angemeldet sind, ist Ihr aktuelles Arbeitsverzeichnis das Home-Verzeichnis des Remote-Benutzers. Sie können dies überprüfen, indem Sie Folgendes eingeben:
pwd
Remote working directory: /home/remote_username
Um die Dateien und Verzeichnisse aufzulisten, verwenden Sie ls
Befehl:
ls
Um zu einem anderen Verzeichnis zu navigieren, verwenden Sie cd
Befehl. Zum Beispiel, um zu /tmp
zu wechseln Verzeichnis würden Sie Folgendes eingeben:
cd /tmp
Die obigen Befehle werden zum Navigieren und Arbeiten am entfernten Standort verwendet.
Die SFTP-Shell bietet auch Befehle für die lokale Navigation, Informationen und Dateiverwaltung. Den lokalen Befehlen wird der Buchstabe l
vorangestellt .
Um beispielsweise das lokale Arbeitsverzeichnis zu drucken, würden Sie Folgendes eingeben:
cd lpwd
Local working directory: /home/local_username
Übertragen von Dateien mit SFTP #
Mit SFTP können Sie Dateien sicher zwischen zwei Computern übertragen.
Wenn Sie auf einem Desktop-Rechner arbeiten, können Sie einen GUI-SFTP-Client wie WinSCP oder FileZilla verwenden, um eine Verbindung zum Remote-Server herzustellen und Dateien herunter- oder hochzuladen.
Die sftp
Der Befehl ist nützlich, wenn Sie auf einem Server ohne GUI arbeiten und Dateien übertragen oder andere Operationen mit den Remote-Dateien ausführen möchten.
Herunterladen von Dateien mit dem SFTP-Befehl #
Um eine einzelne Datei vom Remote-Server herunterzuladen, verwenden Sie get
Befehl:
get filename.zip
Die Ausgabe sollte in etwa so aussehen:
Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
Beim Herunterladen von Dateien mit sftp
, werden die Dateien in das Verzeichnis heruntergeladen, aus dem Sie den sftp
eingegeben haben Befehl.
Wenn Sie die heruntergeladene Datei unter einem anderen Namen speichern möchten, geben Sie den neuen Namen als zweites Argument an:
get filename.zip local_filename.zip
Um ein Verzeichnis vom entfernten System herunterzuladen, verwenden Sie den rekursiven -r
Möglichkeit:
get -r remote_directory
Wenn eine Dateiübertragung fehlschlägt oder unterbrochen wird, können Sie sie mit reget
fortsetzen Befehl.
Die Syntax von reget
ist die gleiche wie die Syntax von get
:
reget filename.zip
Hochladen von Dateien mit dem SFTP-Befehl #
Um eine Datei vom lokalen Rechner auf den entfernten SFTP-Server hochzuladen, verwenden Sie put
Befehl:
put filename.zip
Die Ausgabe sollte in etwa so aussehen:
Uploading filename.zip to /home/remote_username/filename.zip
filename.zip 100% 12MB 1.7MB/s 00:06
Wenn sich die Datei, die Sie hochladen möchten, nicht in Ihrem aktuellen Arbeitsverzeichnis befindet, verwenden Sie den absoluten Pfad zur Datei.
Beim Arbeiten mit put
Sie können dieselben Optionen verwenden, die mit get
verfügbar sind Befehl.
Um ein lokales Verzeichnis hochzuladen, würden Sie Folgendes eingeben:
put -r locale_directory
So setzen Sie einen unterbrochenen Upload fort:
reput filename.zip
Dateimanipulationen mit SFTP #
Um Aufgaben auf einem Remote-Server auszuführen, würden Sie sich normalerweise über SSH mit ihm verbinden und Ihre Arbeit über das Shell-Terminal erledigen. In einigen Situationen hat der Benutzer jedoch möglicherweise nur SFTP-Zugriff auf den Remote-Server.
Mit SFTP können Sie einige grundlegende Dateibearbeitungsbefehle ausführen. Nachfolgend finden Sie einige Beispiele zur Verwendung der SFTP-Shell:
-
Informationen über die Festplattennutzung des Remote-Systems abrufen:
df
Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
-
Erstellen Sie ein neues Verzeichnis auf dem Remote-Server:
mkdir directory_name
-
Benennen Sie eine Datei auf dem Remote-Server um:
rename file_name new_file_name
-
Löschen Sie eine Datei auf dem Remote-Server:
rm file_name
-
Löschen Sie ein Verzeichnis auf dem Remote-Server:
rmdir directory_name
-
Ändern Sie die Berechtigungen einer Datei auf dem Remote-System:
chmod 644 file_name
-
Ändern Sie den Eigentümer einer Datei auf dem Remote-System:
chown user_id file_name
Sie müssen die Benutzer-ID für
chown
angeben undchgrp
Befehle. -
Ändern Sie den Gruppeneigentümer einer entfernten Datei mit:
chgrp group_id file_name
Wenn Sie mit Ihrer Arbeit fertig sind, schließen Sie die Verbindung, indem Sie bye
eingeben oder quit
.
Schlussfolgerung #
In diesem Tutorial haben wir Ihnen gezeigt, wie Sie sftp
verwenden Befehl zum Herunterladen und Hochladen von Dateien auf Ihren Remote-SFTP-Server.
Sie können auch eine SSH-Schlüssel-basierte Authentifizierung einrichten und sich mit Ihren Linux-Servern verbinden, ohne ein Passwort einzugeben. Wenn Sie sich regelmäßig mit denselben Systemen verbinden, können Sie Ihren Arbeitsablauf vereinfachen, indem Sie alle Ihre Verbindungen in der SSH-Konfigurationsdatei definieren.
Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen oder Feedback haben.