Übersicht
SFTP (SSH File Transfer Protocol) wurde entwickelt, um das unsichere FTP zu ersetzen. Der `sftp`-Befehl verwendet eine SSH-Verbindung, um alle Daten und Befehle zu verschlüsseln, wodurch das Risiko, dass Benutzernamen, Passwörter oder Dateiinhalte im Netzwerk offengelegt werden, eliminiert wird. Ähnlich wie FTP unterstützt es einen interaktiven Modus und ist für FTP-erfahrene Benutzer einfach zu bedienen, da die Verwendung ähnlich ist.
Hauptmerkmale
Die Hauptmerkmale des sftp-Befehls sind:
- Verschlüsselt die gesamte Kommunikation basierend auf SSH.
- Bietet eine interaktive Befehlszeilenschnittstelle, ähnlich wie FTP.
- Verwendet einen einzigen Port (Standard: 22), was in Firewall-Umgebungen vorteilhaft ist.
- Unterstützt verschiedene Funktionen wie Datei-Upload (`put`), Download (`get`), Verzeichniswechsel (`cd`, `lcd`).
SFTP vs. FTP
SFTP und FTP unterscheiden sich stark in Bezug auf die Dateiübertragungsmethode und die Sicherheit.
- SFTP: Überträgt Daten sicher, indem sie über SSH verschlüsselt werden. Verwendet Port 22 und verarbeitet die gesamte Kommunikation über einen einzigen Port.
- FTP: Überträgt Daten im Klartext, was es anfällig für Sicherheitslücken macht. Verwendet Port 21 und benötigt einen separaten Port für die Datenübertragung.
Wichtige Optionen
sftp kann ähnlich wie FTP im interaktiven Modus verwendet oder mit bestimmten Befehlen nicht-interaktiv genutzt werden.
1) Ausführungsoptionen
2) Interne Befehle im interaktiven Modus
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`sftp` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Lernen Sie die Funktionen des sftp-Befehls anhand verschiedener Anwendungsbeispiele kennen.
Verbindung zum Server im interaktiven Modus herstellen
sftp user@server.com
Stellen Sie eine Verbindung zu `server.com` mit dem `user`-Konto her und wechseln Sie in den interaktiven Modus.
Datei herunterladen
sftp user@server.com
... (nach Verbindung)
cd /var/log
get syslog ~
Laden Sie die Datei `syslog` aus dem Verzeichnis `/var/log` auf dem Remote-Server in das lokale `~`-Verzeichnis herunter.
Datei hochladen
sftp user@server.com
... (nach Verbindung)
cd /var/www
put /home/user/document.txt
Laden Sie die Datei `/home/user/document.txt` vom lokalen System in das Verzeichnis `/var/www` auf dem Remote-Server hoch.
Dateiübertragung im nicht-interaktiven Modus
sftp user@server.com:/remote/path <<< 'put localfile.txt'
Laden Sie eine Datei auf einmal hoch, indem Sie den `put`-Befehl im nicht-interaktiven Modus verwenden.
Installation
sftp ist in den meisten Linux-Distributionen standardmäßig als Teil des `openssh-client`-Pakets enthalten. Wenn der SSH-Client installiert ist, ist keine separate Installation erforderlich.
Debian/Ubuntu
sudo apt update
sudo apt install -y openssh-client
RHEL/CentOS/Fedora
sudo dnf install -y openssh-clients
Tipps & Hinweise
Hier sind wichtige Hinweise zur Verwendung des sftp-Befehls.
Tipps
- sftp verwendet wie `scp` SSH-Authentifizierungsinformationen. Daher können Sie Verbindungseinstellungen einfach über die Datei `~/.ssh/config` verwalten.
- Im interaktiven Modus können Sie `help` eingeben, um eine Liste aller internen Befehle anzuzeigen. Neben `put` und `get` können Sie auch `mput` und `mget` verwenden, um mehrere Dateien zu übertragen.
- Bei Netzwerkproblemen oder Authentifizierungsfehlern kann die Ausgabe detaillierter Informationen mit der Option `-v` bei der Problembehebung helfen.