Simple File Transfer Protocol (SFTP) ist ein Protokoll, das verwendet wird, um Dateien zwischen zwei Geräten über das Internet zu übertragen. Es läuft über File Transfer Protocol (FTP) und Secure Shell (SSH).
Während das Protokoll Dateien überträgt, schützt es auch vor Passwort-Sniffing, Man-in-the-Middle-Angriffen und der Offenlegung sensibler Daten. Es bewahrt auch die Integrität der Daten mit Hilfe von Verschlüsselungs- und kryptografischen Hash-Funktionen. Es authentifiziert auch den Client und den Server, bevor es Zugriff gewährt. Dies ermöglicht eine sichere Übertragung von Dateien.
Hier bei LinuxAPT werden wir untersuchen, wie Sie mit diesem superpraktischen Dateiübertragungsprotokoll problemlos Dateien zwischen lokalen und entfernten Computern austauschen können.
Hier verwenden wir Linux Mint Cinamon 20.02 als unsere lokale Maschine und Ubuntu 20.04 LTS als Remote-Maschine.
Im ersten Teil erfahren Sie, wie Sie eine Datei von einem Remote-Computer auf einen lokalen Computer übertragen. Im anderen Teil sehen Sie, wie Sie eine Datei von Ihrem lokalen Rechner auf einen entfernten Rechner übertragen.
Um zu sehen, wie Sie einen ProFTPD-Server unter Linux Mint 20 einrichten können, besuchen Sie:https://linuxapt.com/blog/1032-install-proftpd-on-linux-mint-20
a. Schritte zum Übertragen einer Datei von einem Remote-Rechner auf einen lokalen Rechner
1. SSH zu Remote-Rechner
Stellen Sie zunächst eine SSH-Verbindung zu Ihrem Remote-Computer her. Melden Sie sich dazu zunächst mit dem folgenden Befehl als Superuser an:
$ sudo -i
Nachdem Sie nun Superuser geworden sind, senden Sie eine SSH-Verbindung zum Remote-Computer (192.168.10.23), mit dem Sie kommunizieren möchten, um die Datei abzurufen.
$ ssh [email protected]
2. Suchen Sie die zu übertragende Datei
Suchen Sie nun die Datei, die Sie kopieren möchten. In diesem Tutorial erstellen wir eine neue Datei, um sie auf meinen lokalen Computer zu übertragen.
Dazu gehe ich in das /etc-Verzeichnis, indem ich den folgenden Befehl ausführe:
$ cd /etc
Mit Hilfe des Touch-Befehls erstelle ich eine neue Datei mit dem Namen „transfer.txt“:
$ touch transfer.txt
3. Stellen Sie eine SFTP-Verbindung mit dem Remote-Computer her
Jetzt verbinden wir uns mit sftp:
mit dem Remote-Rechner$ sftp [email protected]
Wenn Sie sehen, dass sftp so geschrieben ist:
sftp> pwd
Remote working directory: /home
Dies bedeutet, dass Sie sich im sftp-Modus befinden. Jetzt können die lokalen und entfernten Rechner Dateien mit diesem Protokoll austauschen.
4. Überprüfen Sie, mit welchen Verzeichnissen sftp interagiert
Bevor wir mit der Übertragung von Dateien fortfahren, lassen Sie uns ein wenig navigieren, um zu verstehen, mit welchen Verzeichnissen sftp interagiert. Führen Sie den folgenden Befehl aus, um Ihr aktuelles Arbeitsverzeichnis zu erfahren:
$ pwd
Um das aktuelle Arbeitsverzeichnis des lokalen Rechners anzuzeigen, verwenden wir:
lpwd
Wir können auch das Verzeichnis ändern, mit dem wir interagieren möchten. Es ist im zweiten Teil dieser Anleitung enthalten.
5. Übertragen Sie die Datei
Navigieren Sie zum Verzeichnis /etc, in dem wir die Datei transfer.txt erstellt haben:
$ cd /etc
Um eine Datei von der entfernten Maschine an die lokale Maschine zu senden, verwenden wir den get-Befehl, gefolgt vom Dateinamen:
$ get transfer.txt
Fetching /etc/transfer.txt to transfer.txt
Gehen Sie nun mit dem folgenden Befehl in das Stammverzeichnis Ihres lokalen Systems:
$ cd ~
Verwenden Sie ls, um alle Dateien im Verzeichnis anzuzeigen:
$ ls
Sie werden nun sehen, dass sich die Datei transfer.txt jetzt auf unserem lokalen Rechner befindet.
Nachdem Sie die sftp-Sitzung geschlossen haben, können Sie die Datei aus Ihrem Stammverzeichnis in einen beliebigen anderen Ordner auf Ihrem Computer übertragen.
b. Datei von einem lokalen Rechner auf einen entfernten Rechner übertragen
Wir haben eine weitere Datei test.txt auf unserem lokalen Rechner im folgenden Verzeichnispfad:
$ /home/linuxAPT/Downloads/folder
Von hier aus übertragen wir es auf unseren Remote-Rechner.
1. Stellen Sie über SFTP eine Verbindung zum Remote-Computer her:
$ sftp [email protected]
2. Ändern Sie das lokale Verzeichnis, mit dem sftp interagiert
Das lokale aktuelle Arbeitsverzeichnis ist:
$ lpwd
Local working directory: /root
Wie bereits erwähnt, können wir das lokale Verzeichnis ändern, mit dem sftp interagieren soll. Verwenden Sie dazu den lcd-Befehl:
$ lcd /home/linuxAPT/Downloads/folder
Zuvor interagierte sftp mit dem Stammverzeichnis des lokalen Computers. Jetzt interagiert es mit dem Verzeichnis /home/linuxAPT/Downloads/folder. Sie können dies mit dem folgenden Befehl bestätigen:
$ lpwd
working directory: /home/linuxAPT/Downloads/folder
4. Übertragen Sie die Datei
Als nächstes verwenden wir den put-Befehl, um die Datei von der lokalen Maschine auf die entfernte Maschine zu übertragen:
$ put test.txt
uploading test.txt to /home
Führen Sie nun den Befehl ls aus, um zu sehen, ob die Datei erfolgreich in das /home-Verzeichnis des Remote-Computers übertragen wurde:
$ ls
Jetzt befindet sich die von uns übertragene Datei hier auf dem Remote-Computer.
Jetzt können Sie die Sitzung mit einem einfachen Tschüss-Befehl beenden:
$ bye