Linux sftp-Befehl

Linux 命令大全Vollständige Liste der Linux-Befehle


Was ist sftp?

SFTP (SSH File Transfer Protocol) ist ein sicheres Dateiübertragungsprotokoll, das Dateien über einen verschlüsselten SSH-Kanal (Secure Shell) überträgt. Im Gegensatz zu herkömmlichem FTP bietet SFTP höhere Sicherheit, und alle übertragenen Daten werden verschlüsselt.

Unterschiede zwischen SFTP und FTP

Merkmal SFTP FTP
Sicherheit Verschlüsselte Übertragung Klartextübertragung
Port 22 (SSH-Port) 21 (Steuerport) + 20 (Datenport)
Protokoll Basiert auf SSH Eigenständiges Protokoll
Firewall-Freundlichkeit Nur ein Port muss geöffnet werden Mehrere Ports müssen geöffnet werden

Grundlegende Syntax des sftp-Befehls

sftp [选项] [用户名@]主机名[:路径]

Übliche Optionsparameter

Option Beschreibung
-P 端口号 Verbindungsport angeben (Standard 22)
-b 批处理文件 Befehle aus einer Batchdatei ausführen
-r Ein gesamtes Verzeichnis rekursiv kopieren
-v Detaillierte Debugging-Informationen anzeigen
-i 私钥文件 Mit der angegebenen privaten Schlüsseldatei authentifizieren

Mit SFTP-Server verbinden

Grundlegende Verbindungsmethode

Beispiel

sftp username@hostname

Beispiel:

Beispiel

sftp user@example.com

Mit einem angegebenen Port verbinden

Wenn der Server einen nicht standardmäßigen Port verwendet (nicht 22):

Beispiel

sftp -P 2222 user@example.com

Schlüsselauthentifizierung verwenden

Beispiel

sftp -i ~/.ssh/id_rsa user@example.com

Häufige SFTP-Befehle

1. Lokale Dateioperationen

Befehl Beschreibung
lls Lokale Verzeichnisinhalte auflisten
lcd Lokales Arbeitsverzeichnis wechseln
lmkdir Verzeichnis lokal erstellen
lrm Lokale Dateien löschen

2. Remote-Dateioperationen

Befehl Beschreibung
ls Remote-Verzeichnisinhalte auflisten
cd Remote-Arbeitsverzeichnis wechseln
mkdir Verzeichnis remote erstellen
rm Remote-Dateien löschen
rename Remote-Dateien umbenennen

3. Dateiübertragung

Befehl Beschreibung
put 本地文件 [远程路径] Dateien auf einen Remote-Server hochladen
get 远程文件 [本地路径] Dateien von einem Remote-Server herunterladen
mput 本地文件* Mehrere Dateien hochladen
mget 远程文件* Mehrere Dateien herunterladen

Praktische Beispiele

Beispiel 1: Dateien auf den Server hochladen

Beispiel

sftp user@example.com
sftp> cd /var/www/html
sftp> put index.html
sftp> exit

Beispiel 2: Ein ganzes Verzeichnis herunterladen (rekursiv)

Beispiel

sftp -r user@example.com:/backups /local/backups

Beispiel 3: Eine Batchdatei verwenden

Erstellesftp_commands.txt:

put file1.txt
put file2.txt
get report.pdf
exit

Batch ausführen:

Beispiel

sftp -b sftp_commands.txt user@example.com

Erweiterte Tipps

1. Wildcards verwenden, um mehrere Dateien zu übertragen

Beispiel

sftp> mput *.jpg      # Alle jpg-Dateien hochladen
sftp> mget log_*.txt  # Alle txt-Dateien herunterladen, die mit log_ beginnen

2. Dateiberechtigungen ändern

Beispiel

sftp> chmod 644 index.html

3. Dateiinformationen anzeigen

Beispiel

sftp> ls -l

4. Symbolische Links verwenden

Beispiel

sftp> symlink /Pfad/zum/Original /Pfad/zum/Link

Lösungen für häufige Probleme

1. Verbindung abgelehnt

  • Prüfen, ob der Server den SSH-Dienst ausführt
  • Bestätigen, ob der Port korrekt ist
  • Firewall-Einstellungen prüfen

2. Authentifizierungsfehler

  • Bestätigen, dass Benutzername und Passwort korrekt sind
  • Berechtigungen der Schlüsseldatei prüfen (sollte 600 sein)
  • Stellen Sie sicher, dass Ihr öffentlicher Schlüssel auf dem Server liegt

3. Dateiübertragung unterbrochen

  • Netzwerkverbindung prüfen
  • Versuchen Sie,regetundreputBefehl zum Fortsetzen der Übertragung

4. Unzureichende Berechtigungen

  • Überprüfen Sie die Schreibberechtigung des Remote-Verzeichnisses
  • Möglicherweise müssen Sie verwendensudo(Aber sftp unterstützt normalerweise kein direktes sudo)

Bewährte Sicherheitspraktiken

  1. Verwenden Sie die Schlüsselauthentifizierunganstelle der Passwortauthentifizierung
  2. Begrenzen Sie die Benutzerberechtigungen, verwenden Sie eine chroot-Umgebung
  3. Aktualisieren Sie regelmäßigSSH-Server-Software
  4. Deaktivieren Sie die Root-Anmeldung, verwenden Sie einen normalen Benutzer + sudo
  5. Protokolldateien überwachen(/var/log/auth.log)

Zusammenfassung

SFTP ist ein wichtiges Werkzeug für die sichere Übertragung von Dateien in Linux-Systemen. In dieser Anleitung sollten Sie Folgendes beherrschen:

  • Grundlegende Konzepte und Verbindungsmethoden von SFTP
  • Gängige Befehle für Dateioperationen und Übertragungen
  • Praktische Stapelverarbeitung und fortgeschrittene Tipps
  • Lösungen für häufige Probleme
  • Best Practices für die sichere Nutzung

Jetzt können Sie Dateien sicher und effizient zwischen Ihrem lokalen Rechner und einem Remote-Server übertragen!

Linux 命令大全Vollständige Liste der Linux-Befehle

Weitere Erweiterungen