Was ist das SSH File Transfer Protocol (SFTP)

Was ist das SSH File Transfer Protocol (SFTP)

14.05.2024
Autor: HostZealot Team
2 min.
12

Die Sicherheit des Übertragungsprotokolls war schon immer ein wichtiges Thema für eine Vielzahl von Benutzern. Aus diesem Grund sind ältere Protokolle wie FTPS und FTP nicht so beliebt wie die modernere Variante - SFTP. SSH File Transfer Protocol ist eine großartige Variante, die eine Vielzahl von Funktionen hat und auf SSH basiert.

In diesem Artikel werden wir das Verständnis von SFTP vertiefen und einige gute Empfehlungen zur Überprüfung des Speicherplatzes geben. Außerdem werden wir einige nützliche SFTP-Befehle besprechen.

Überblick über SSH und SFTP

Um ein allgemeines Verständnis für die wichtigsten Merkmale von SFTP zu bekommen. Lassen Sie uns einige entscheidende Elemente erörtern, die dieses Protokoll von anderen abheben, wie z. B. die Sicherheit der Daten, die Dateiverwaltung für entfernte und lokale Systeme, die Schlüsselauthentifizierung, das Durchsuchen von Verzeichnissen auf Server- und Client-Seite sowie die Kompatibilität mit den meisten Betriebssystemen. Wenn wir speziell über die Sicherheit der Datenübertragung sprechen, dann stützt sich die Funktionsweise von SFTP auf das SSH-Protokoll für Verschlüsselung und zusätzlichen Schutz.  

Bei ordnungsgemäßer Authentifizierung und Autorisierung erlaubt SSH jede Art von benötigten Befehlen in der Shell.

Wenn man speziell über SFTP spricht, ist die Anzahl der verfügbaren Befehle, die offensichtlich mit der Dateiübertragung zusammenhängen, eher begrenzt. SFTP ist stärker auf SSH beschränkt als andere Protokolle, so dass es nicht als völlig eigenständig betrachtet werden sollte.

Der SSH-Subsystem-Mechanismus

Das Subsystem kann auf dem SSH-Protokoll als Abstraktionsschicht laufen. Lassen Sie uns praktisch erklären, wie wir das mit der Erstellung von ausführbaren Dateien machen können.  

Erstellung von ausführbaren Dateien für Subsysteme

Beginnen wir mit dem einfachen Skript und legen es in /usr/lib/openssh/ ab:

$ cat /usr/lib/openssh/xid.sh
#!/usr/bin/env bash
hostname
$ chmod +x /usr/lib/openssh/xid.sh

Einrichtung des Subsystems

Für die Konfiguration des Systems verwenden wir die Datei /etc/ssh/sshd_config. Hier setzen wir xid als Subsystem:

$ cat /etc/ssh/sshd_config
[...]
# override default of no subsystems
Subsystem  xid  /usr/lib/openssh/xid.sh
[...]

SFTP-Einrichtung

Um es klar zu sagen, aber SFTP-Server werden auch als Subsystem von SSH betrachtet. Darüber hinaus sind ssh- und sftp-Clients fast gleichwertig, wenn man -s sftp verwendet:

$ ssh [...] -s sftp

SFTP Command Overview

Depending on the SFTP implementation of the server, there are some parts that are restricted to pure SSH and others that are SFTP. This means some are integrated into sshd, and at the same time, others are separate such as sftp-server.

Grundlegende Befehle für den alltäglichen Gebrauch

Um alle grundlegenden Befehle, die von SFTP unterstützt werden, zu überprüfen, können Sie die Hilfe verwenden. Wenn Sie help in die sftp-Eingabeaufforderung eingeben, erscheint eine Liste mit den wichtigsten Informationen über die Dateiübertragung, das Entfernen und vieles mehr.

Hier sind ein paar Beispiele, die Sie ausprobieren können:

  • chmod [-h] mode path – die Berechtigungen der Datei 'path' auf 'mode' ändern
  • version – rdie aktuelle SFTP-Version anzeigen
  • ? – dieser Befehl kann anstelle von help verwendet werden, und Sie erhalten die gleiche Ausgabe                            
  • chown [-h] own path – den Eigentümer der Datei "path" auf "own" ändern         
  • bye – SFTP anhalten  
  • cd path - remote direct in 'Pfad' ändern
  • chgrp [-h] grp path - die Gruppe der Dateien ändern
  • !command - einen bestimmten Befehl ausführen, den Sie nach '!' in der lokalen Shell einfügen

Aktualisierungen und Erweiterungen der SFTP-Funktionalität

Die Spezifikationen von SFTP liegen bereits in verschiedenen Versionen vor, beginnend mit der 3. und endend mit der 6. In der Regel wird jedoch nur die Standardversion oder die 3te Version von OpenSSH und einigen anderen SSH-Servern unterstützt.

Natürlich ist das kein Problem und Sie können diese Standardversion leicht durch die bevorzugte Version ersetzen, aber in einigen Szenarien kann die Funktionsweise von SSH und anderen Versionen inkonsistent sein. Aus einem anderen Blickwinkel betrachtet, kann Version 3 jeden notwendigen Code ordnungsgemäß unterstützen, so dass dies überhaupt kein Problem darstellt.  

Proprietäre Befehle für spezielle Aufgaben

Da diese Art von Protokoll auf SSH-Servern funktioniert, sollten alle Befehle über ssh ausgeführt werden. Um z. B. den verfügbaren Speicherplatz des Servers zu überprüfen, verwenden Sie den folgenden Befehl:

$ ssh jane@145.123.5.55 df

Speicherüberprüfungen in der SFTP-Umgebung

Speicherprüfungen in der SFTP-Umgebung sind aus einer Vielzahl von Gründen äußerst wichtig, aber irgendwie sind solche Prüfungen nicht in der ursprünglichen Version dieses Protokolls enthalten.

Aus diesem Grund können Sie die statvfs-Implementierung für die Prüfungen verwenden. Verwenden Sie also den df-Befehl auf folgende Weise:

sftp > df -h

Wenn es sich um die 6. Version von SFTP handelt, können die Benutzer den Speicherplatz sofort überprüfen, ohne dass die zuvor diskutierte Implementierung erforderlich ist. Hier sind mehrere Anwendungen, die eine solche Funktionalität nutzen können:

  • WinSCP
  • ProFTPD
  • Bitvise

Die Verwendung jeder Art von Client-Server-Kombination reicht aus, um über ein bestimmtes Merkmal mit den Kontrollen in Kontakt zu treten.

Schlussfolgerung

Hier haben wir ein paar praktische Empfehlungen und hilfreiche Befehle für SFTP und sein ordnungsgemäßes Funktionieren mit SSH gegeben. Obwohl die meisten Funktionen dieses Protokolls in den meisten Servern nicht implementiert sind, können Sie die Verwendung von Erweiterungen leicht ausprobieren.

Verwandte Artikel