wiki:linux:datenaustausch:sftp-secure-file-transfer-protocol

Linux - SFTP Datentransfer via SSH

SFTP (Secure File Transfer Protocol) ist eine für SSH (Secure Shell) entwickelte Erweiterung zur sicheren Übertragung von Daten. Des Weiteren besteht die Möglichkeit Verzeichnisinhalte auszulesen und Daten auf dem entfernten Rechner anzupassen oder zu löschen.
Die Übertragungen können hierbei klassisch über das Terminal, aber auch einen grafischen Client wie FileZilla erfolgen.

Wichtig! Bitte beachten, dass SFTP und FTPS nicht das Gleiche ist!


SFTP (Secure File Transfer Protocol) ist im Paket OpenSSH-Server enthalten. Eine detaillierte Anleitung zur Installation findet Ihr unter Linux - SSH-Server

sudo apt update
sudo apt install openssh-server

Die Syntax von sftp

sftp

Option Erläuterung
-h –help Anzeigen der Optionen des Befehls
-r Setzt beim Login den rekrusiven Datei Up-/Download
Befehl remote Befehl lokal Erläuterung
help / ? - Auflistung der Befehlsübersicht
bye / exit / quit - SFTP beenden
- !exit Wechsel zurück von lokaler auf remote Shell
! - Wechsel zur lokalen Shell
cd <Pfad> lcd <Pfad> Wechsel von Verzeichnissen
chgrp [-h] <Gruppe> <Pfad> - Änderung der Gruppe einer Datei oder eines Verzeichnisses
chmod [-h] <Berechtigung> <Pfad> - Änderung der Zugriffsrechte einer Datei oder eines Verzeichnisses
chown [-h] <Besitzer> <Pfad> - Änderung des Besitzers einer Datei oder eines Verzeichnisses
df [-hi] <Pfad> - Anzeige der Festplattenauslastung des aktuellen Verzeichnisses
ls [-1afhlnrSt] <Pfad> lls Auflistung des Verzeichnisinhaltes
mkdir <Pfad> lmkdir Verzeichnis erstellen
rmdir <Pfad> - Verzeichnis löschen
rm <Pfad> - Datei löschen
pwd lpwd Ausgabe des Remote-Verzeichnisses
rename <Alter Pfad> <Neuer Pfad> - Datei umbenennen
put [-afpR] local [remote] - Upload von lokalem Rechner auf den remote Server
get [-afpR] remote [local] - Download von remote Server auf den lokalen Rechner
reput [-fpR] local [remote] - Wiederaufnahme des Uploads
reget [-fpR] remote [local] - Wiederaufnahme des Downloads

Anmerkung: Bei den Befehlen funktionieren in der Regel auch die Operatoren. Siehe hierzu die ManPages der jeweiligen Befehle.

Der Login funktioniert ähnlich wie bei SSH

sftp <user>@<server>

Wird beim Login die Option -r mit übergeben, ist der rekursive Datei Up-/Download aktiviert.

sftp -r <user>@<server>

jolly@roger:~$ sftp -r jolly@linux42.de
Connected to linux42.de.
sftp>

Für das Login können auch SSH-Schlüssel verwendet werden Linux - Erstellen und Verteilen von SSH-Keys.

Die Navigation bei SFTP ist, obwohl gut durchdacht und eigentlich nicht schwer, etwas gewöhnungsbedürftig.

Generell muss einem nur bewusst sein, dass man in einem Terminal-Fenster auf zwei Ebenen Arbeitet. Einmal lokal und einmal auf dem Remote-Server.

Zwischen den Fenstern kann man wechseln oder die Befehle Systemübergreifend nutzen. Hierfür steht einem die erweiterte Option -l zur Verfügung.

Um das Ganze zu verdeutlichen, hier mal die Ausgaben an Hand des Beispiels pwd zum anzeigen der aktuellen Position.

# Verbindung zum Server herstellen
jolly@poa:$sftp -r jolly@linux42.de
Connected to linux42.de.
sftp>

# Anzeige des aktuellen Verzeichnisses auf dem Remote-Server
sftp> pwd
Remote working directory: /home/jolly
sftp>

# Anzeige des aktuellen Verzeichnisses auf dem lokalen Rechner
sftp> lpwd
Local working directory: /home/jolly
sftp>

# Wechsel auf die lokale Shell, Verbindung besteht immer noch
sftp> !
jolly@poa:~$ pwd
/home/jolly
jolly@poa:~$

# Verlassen der lokalen Shell und Wechsel zurück zur Remote-Shell
jolly@poa:~$ !exit
exit
exit
Shell exited with status 127
sftp>

Hier noch als Beispiel wie man Daten hoch- und herunterlädt.

# Remote-Verzeichnisinhalt auflisten
sftp> ls
Bilder Dokumente Downloads Musik Schreibtisch Videos

# In Verzeichnis Bilder wechseln
sftp> cd Bilder
sftp> ls -la
drwxr-xr-x 2 jolly jolly 4096 Mar 7 00:29 .
drwxr-xr-x 24 jolly jolly 4096 May 20 10:45 ..
-rwxrwxrwx 1 jolly jolly 190849 Feb 20 19:13 sonnenaufgang.jpg

# Herunterladen eines Bildes
sftp> get sonnenaufgang.jpg
Fetching /home/jolly/Bilder/sonnenaufgang.jpg to sonnenaufgang.jpg
/home/jolly/Bilder/sonnenaufgang.jpg 100% 186KB 16.1MB/s 00:00

# Hochladen eines Bildes
sftp> put Bilder/sonnenuntergang.jpg
Uploading Bilder/sonnenuntergang.jpg to /home/jolly/Bilder/sonnenuntergang.jpg
Bilder/sonnenuntergang.jpg 100% 721KB 28.8MB/s 00:00

# Überprüfung des Uploads
sftp> ls
sonnenaufgang.jpg sonnenuntergang.jpg
sftp>


Ihr seht, dass die Möglichkeiten mit SFTP umfangreicher sind als mit SCP Linux - Dateien via Secure Copy (SCP) übertragen. Dadurch wird die Thematik aber auch gleich um einiges komplexer.

Trotzdem bietet SFTP die umfangreiche Möglichkeit, Dateien sicher zu verwalten.

Alternativ kann auch ein grafisches Programm wie z.B. Filezilla genutzt werden um die Daten zu transferieren. Die Einstellung und Installation habe ich unter Linux - FileZilla Client dokumentiert.


Wir haben die hier gezeigten Anleitung sorgfältig erstellt und in unserer Testumgebungen ausgiebig getestet.
Wer sich entschließt diese Anleitungen für sich selbst umzusetzen, führt diese auf eigene Verantwortung durch.
Der Ersteller des Artikels, sowie der Seitenbetreiber, haftet nicht für eventuelle Schäden an Hard- und/oder Software oder damit zusammenhängenden Schäden\\

2021/03/06 23:11 · rsb

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
X​ G N᠎ Z E
 
  • wiki/linux/datenaustausch/sftp-secure-file-transfer-protocol.txt
  • Zuletzt geändert: 2021/09/18 06:05
  • von rsb