In diesem Tutorial wird erläutert, wie Sie Dateien über das SFTP -Protokoll unter Linux verbinden und übertragen werden, und sichern Sie durch die Implementierung von Sicherheitsmaßnahmen.
Der sftp Der Befehl ist eines der nützlichsten Tools für jeden Netzwerkbenutzer, einschließlich inländischer Benutzer. Dieser Befehl kann auch in Windows -Systemen implementiert werden, was ihn für jeden Netzwerktyp attraktiv macht.
Dies ist eines der wichtigsten Befehlszeilen -Tools, um Dateien zwischen Computern sicher zu teilen. Darüber hinaus kann der Benutzer zum Herunterladen und Hochladen von Dateien und Verzeichnissen die Berechtigungen aus der Ferne ändern, Dateien entfernen und umbenennen und mehr umbenennen.
SFTP ist ein Befehl, der definitiv das Netzwerkerlebnis aus der Befehlszeile verbessern wird.
Nachdem Sie diesen Artikel gelesen und Beispiele angewendet haben (sie können auch in einer virtuellen Maschine reproduziert werden), weiß der Leser, wie man Linux -Systeme für die Übertragung von Dateien mit dem SFTP -Befehl konfiguriert, sowohl im interaktiven Modus als auch im Befehlszeile.
Der Inhalt ist für alle Linux -Verteilungen gültig und enthält echte Szenario -Screenshots, so.
Kurze Einführung in sftp
Früher war FTP (Dateiübertragungsprotokoll) die einzige Methode, um Dateien zwischen Clients und Servern oder zwischen zwei Netzwerkgeräten zu übertragen.
Benutzer haben früher alle Downloaddateien von FTP -Servern mit Berechtigungen zum Lesen und Schreiben in den zulässigen Verzeichnissen hochladen.
Das FTP -Protokoll erlitt jedoch Schwachstellen mit hohem Risiko und wurde durch neuere und sicherere Protokolle ersetzt. Zwei weithin bekannte Beispiele sind SCP (Secure Copy Protocol) und SFTP (Secure File Transference Protocol). SFTP ist einer der beliebtesten Ersatz für das FTP -Protokoll.
Wie bei FTP kann SFTP über einen interaktiven Textmodus oder durch Ausführen einzelner Befehle verwendet werden. Dieses Tutorial erklärt beide Techniken.
Frühere Anforderungen zur Verwendung von SFTP
Der sftp Protokoll erfordert ssh (Sichere Shell) zu installieren und auf dem Server auszuführen, auf dem Dateien heruntergeladen werden sollen, oder Dateien hochladen.
Wenn Ihr Server bereits über den SSH ausgeführt wird, können Sie zum nächsten SFTP -Abschnitt springen.
Auf Debian -basierten Linux -Verteilungen kann SSH mit dem installiert werden geeignet Packages Manager, wie im Screenshot unten gezeigt.
sudo apt installieren ssh
Auf Redhat -basierten Linux -Verteilungen kann SSH durch Ausführen des folgenden Befehls installiert werden:
DNF Installation OpenSSH-Server
Starten Sie den Dienst nach der Installation auf dem Server, mit dem Sie eine Verbindung herstellen möchten Systemctl Befehl wie unten gezeigt (Debian -basierte Verteilungen).
sudo systemctl starten ssh
Ausführen:
sudo systemctl starten sshd
Wie benutzt man sftp im interaktiven Modus
Dieser Abschnitt deckt die ab sftp Interaktive Modusverwendung.
Der einzige Befehl, der ausgeführt wird, um auf die zuzugreifen sftp Server, bevor Sie die erhalten sftp Die Eingabeaufforderung ist die Verbindungsanforderung, die die ähnliche Syntax enthält wie ssh und scp.
Das folgende Beispiel beschreibt die richtige Syntax, wo <Benutzer> muss durch einen vorhandenen Benutzer auf dem Server ersetzt werden und <Serverip> Mit dem Server -Host oder der IP -Adresse.
sftp@
Im Screenshot unten den lokalen Benutzer Linux-Hint3 verbindet sich als Remote -Benutzer LinuxHint zum Server mit IP -Adresse 192.168.0.103.
SFTP [email protected]
Wenn der Benutzer zum ersten Mal eine Verbindung zum Server herstellt, wird er aufgefordert, die Verbindung zu bestätigen. Der Benutzer muss eingeben “Ja", Drücken Sie EINGEBEN und füllen Sie das Passwort aus.
Sobald der Benutzer eine Verbindung hergestellt ist, gibt der Server eine zurück sftp> Eingabeaufforderung, bei der der Benutzer die ausführen kann sftp Befehle.
Der sftp Mit dem interaktiven Modus können Benutzer sowohl mit den lokalen als auch mit den Remote -Systemen interagieren.
Normale Linux -Befehle wirken sich auf den Server aus. Befehle beginnen mit einem “lWerden im lokalen System ausgeführt.
Zum Beispiel, wenn der Benutzer die ausführt PWD Befehl, es wird das Remote Current Working Directory angezeigt. Aber wenn der Benutzer die ausführt LPWD, Es wird das lokale aktuelle Verzeichnis zeigen.
Standardmäßig ist das lokale Remote -Verzeichnis das Remote User Home -Verzeichnis, mit Ausnahme einiger Fälle wie dem folgenden Beispiel, in dem der Remote -Benutzer kein Home -Verzeichnis hat.
Im Screenshot unten die PWD Der Befehl wird ausgeführt, um das Remote Current Working Directory anzuzeigen.
PWD
Dann, LPWD wird ausgeführt, um das lokale aktuelle Arbeitsverzeichnis zu zeigen.
LPWD
Wie Sie im obigen Screenshot sehen können LinuxHint4 Remote -Benutzer hat kein Home -Verzeichnis) und das lokale Arbeitsverzeichnis ist das lokale Zuhause.
Wenn der Benutzer die ausführt ls (Liste) Befehl, er wird Remotedateien und Verzeichnisse innerhalb des aktuellen Arbeitsverzeichnisses angezeigt.
ls
Durch Ausführung LLS (Lokale Liste) zeigt der Befehl Dateien und Verzeichnisse im lokalen aktuellen Arbeitsverzeichnis an.
Mit dem CD (Verzeichnis ändern) Befehl, der Benutzer kann sich zwischen Remote -Verzeichnissen bewegen. Mit dem LCD (Lokal Änderung des Verzeichnisses) Befehl kann der Benutzer zwischen lokalen Verzeichnissen wechseln, wie in der folgenden Abbildung gezeigt.
Die Syntax zum Herunterladen einer Datei vom Server ist Folgendes:
erhalten
Oder
erhalten
Im folgenden Beispiel lädt der Benutzer die benannte Datei herunter Datei10 und dann rennt LLS (Lokal auflisten) Die Bestätigung der Datei wurde ordnungsgemäß heruntergeladen.
Holen Sie sich Datei10
Um Verzeichnisse herunterzuladen, ist die Syntax bis auf die fast gleich -R Flagge wie unten gezeigt.
Holen Sie sich -r
Oder
Holen Sie sich -r
Im folgenden Beispiel lädt der Benutzer ein Verzeichnis namens herunter Verzeichnis1.
Holen Sie sich -r -Verzeichnis1
Zum Hochladen von Dateien ist die Syntax Folgendes:
setzen
Im folgenden praktischen Beispiel lädt der Benutzer eine mit dem Namen namens Datei hoch <Datei>
Um Verzeichnisse hochzuladen, fügen Sie einfach das hinzu -R Flagge.
Put -r
Oder
put -r
Benutzer können Dateien auch mit denselben Linux -Befehlen aus der Ferne entfernen. Zum Beispiel zum Entfernen einer Datei einfach ausführen:
rm
Um Verzeichnisse zu entfernen, fügen Sie die hinzu -R Flagge wie unten gezeigt.
Rm -r
Der df -h Der Befehl kann verwendet werden, um den gesamten Serverraum, der verwendete und verfügbare Speicherplatz anzuzeigen.
df -h
Benutzer können auch Datei- und Verzeichnisberechtigungen mit dem ändern Chmod Befehl wie im folgenden Beispiel gezeigt.
Chmod +/-
Um den interaktiven Modus zu verlassen Ausfahrt.
Ausfahrt
Eine andere Möglichkeit, die zu verlassen sftp Sitzung ist die Tschüss Befehl.
Tschüss
Verwendung sftp Mit einzelnen Befehlen
Darüber hinaus kann SFTP im interaktiven Modus mit einzelnen Befehlen verwendet werden. In diesem Abschnitt wird das Herunterladen und Hochladen von Dateien ohne vorherige Verbindung zum interaktiven Modus abgeladen und hochgeladen.
Die Syntax zum Herunterladen von Dateien ist Folgendes:
sftp@ :
Im folgenden Beispiel meldet sich der Benutzer an als der an LinuxHint5 Benutzer und lädt die herunter Ziele.txt Remotedatei zum lokalen Verzeichnis, das durch einen Zeitraum dargestellt wird.
SFTP [email protected]: Ziele.txt .
Im folgenden praktischen Beispiel lädt der Benutzer die benannte Datei herunter etwas2.txt befindet sich in der Fernbedienung testdir/ Unterverzeichnis zum lokalen Desktop/ Unterverzeichnis.
SFTP [email protected]: testdir/etwas2.txt ~/desktop
Wie im folgenden Beispiel gezeigt, indem Sie das hinzufügen -R Flag, der Benutzer kann Verzeichnisse rekursiv herunterladen. Im folgenden Beispiel lädt der Benutzer die herunter testdir/ Verzeichnis an die lokale Desktop/ Verzeichnis.
sftp -r [email protected]: TestDir/ ~/ Desktop
Um Dateien hochzuladen, indem ein einzelner Befehl mit SFTP ausgeführt wird, wenden Sie die folgende Syntax an.
sftp@ : <<< $'put '
Im folgenden Beispiel die lokalen Datei2 wird auf die hochgeladen testdir/ Verzeichnis.
SFTP [email protected]: testdir/ <<< $'put file2'
Fügen Sie das hinzu, um ein Verzeichnis hochzuladen -R Option mit der folgenden Syntax
sftp -r@ : <<< $'put '
Im folgenden Beispiel die Desktop/ Lokales Verzeichnis wird in die Fernbedienung hochgeladen perl5/ Verzeichnis.
sftp -r [email protected]: Perl5/ <<< $'put Desktop'
Erhöhung der SFTP -Sicherheit mit der wichtigsten Authentifizierung
Standardmäßig sind SFTP -Verbindungen sicher und durch das SSH -Protokoll geschützt.
Eines der Risiken ist jedoch die Standard -Kennwort -Anmeldemethode als Folge der Kennwortschwäche, die Kennwortaustausch- oder Kennwortfreigabekanäle und Prozesse enthält. In diesen können Passwörter zum Beispiel mit einem MIM -Angriff (Mann in der Mitte) durchgesickert werden, gefolgt von einer erfolgreichen Beschreibung.
Wenn der Server nicht ordnungsgemäß konfiguriert ist, kann die Kennwortanmeldung das System den Brute -Force -Angriffen aussetzen.
Um dies zu verhindern, besteht eine gute Praxis für kleine und mittelgroße Netzwerke darin, die SSH -Schlüsselauthentifizierung zu implementieren und die Kennwortanmeldung zu deaktivieren.
Implementierung der SSH -Schlüsselauthentifizierung und Deaktivieren des Kennwort -Anmeldes
Der sftp Die Sicherheit wird vom SSH -Protokoll gewährt, dessen Konfigurationsdatei lautet /etc/ssh/sshd_config, Die Dateibenutzer müssen bearbeiten, um die Schlüsselauthentifizierung zu aktivieren und die Kennwortanmeldung unter weiteren Optionen zu deaktivieren, um die Sicherheit zu verstärken.
Bearbeiten Sie die auf dem Server, die eingehende Verbindungen ermöglichen, die /etc/ssh/sshd_config Datei mit Privilegien mit einem einfachen Texteditor wie Nano oder vi.
sudo nano/etc/ssh/sshd_config
Öffnen Sie die wichtige Authentifizierung auf dem Servercomputer, um die wichtige Authentifizierung zu aktivieren /etc/ssh/sshd_config Datei mit Privilegien und die enthaltene Zeile finden PubkeyAuthentication Nr. Ersetzen Sie es durch PubkeyAuthentication Ja (Ersetze das "NEIN" mit "Ja”)).
Auch bestätigen Erläuterung Nr So deaktivieren Sie die Stammanmeldung.
Der Wurzel Der Benutzer ist in allen Unix -basierten Systemen einschließlich Linux vorhanden. Es ist eine schlechte Entscheidung, sich mit einem Benutzernamen mit Privilegien zu ermöglichen, die von allen bekannt sind.
Bearbeiten Sie die Optionen zum Deaktivieren der Kennwortanmeldung noch nicht, da für den Schlüsselfreigabeprozess die Kennwortauthentifizierung erforderlich ist, bevor das System mit Tasten authentifiziert wird.
Beenden Sie die Änderungen der Konfigurationsdatei Speichern und starten Sie den SSH -Dienst neu.
Debian -basierte Linux -Verteilungen:
sudo systemctl starten ssh neu
Redhat -basierte Linux -Verteilungen:
sudo systemctl starten ssh neu
Generieren Sie das Schlüsselpaar auf der Clientseite, indem Sie umgreife Verbindungen anfordern, indem Sie die ausführen ssh-keygen Befehl.
Der Prozess fordert die Bestätigung der Schlüsselverzeichnis an, drücken Sie EINGEBEN Um das Standard -Lokalverzeichnis zu verlassen (~/.SSH/ID_RSA) oder das Äquivalent in Ihrer Linux -Verteilung. Der Vorgang bietet an, eine Passphrase einzuschließen, die bei der Anmeldung erforderlich ist. Durch Hinzufügen einer Passphrase kann die Sicherheit erhöht werden. Es wird empfohlen, eins einzugeben und zu drücken EINGEBEN. Wenn Sie keine Passphrase hinzufügen möchten, drücken Sie einfach EINGEBEN ohne es zu tippen.
ssh-keygen
Jetzt muss der Client den Schlüssel mit dem Server mit dem Befehl teilen ssh-copy-id Verwenden der Syntax des folgenden Beispiels.
ssh-copy-id [email protected]
Testen Sie nach dem Teilen des Schlüssels die wichtigste Authentifizierungsmethode, indem Sie eine Verbindung zum Server herstellen.
Wenn die Authentifizierung erfolgreich ist, meldet sich der Benutzer ohne Passwort an. Wenn der Benutzer eine Passphrase definiert, wird er anstelle des Passworts wie im folgenden Beispiel angefordert.
sftp @@
Nach der Überprüfung der wichtigsten Authentifizierung wird dringend empfohlen, das Passwort -Anmeldung zu deaktivieren.
Auf der Serverseite, Bearbeiten Sie die Datei /etc/ssh/sshd/config Wieder mit einem Texteditor wie Nano oder vi.
sudo nano/etc/ssh/sshd/config
Scrollen Sie nach unten und ersetzen Sie die Linie PAsswordAuthentication Ja mit PasswortAuthentication -Nr.
Starten Sie den SSH -Service neu.
sudo systemctl starten sshd neu
Redhat -basierte Linux -Verteilungen:
sudo systemctl starten ssh neu
Jetzt wird die Authentifizierungssicherheit ordnungsgemäß erhöht.
Abschluss
SFTP ist ein sehr nützliches Tool, um Dateien zwischen Geräten zu teilen und zwei einfache Modi anzubieten. Das SFTP -Protokoll kann in jedem Betriebssystem installiert werden, das Sicherheit, Zuverlässigkeit und Geschwindigkeit bietet. Alternativ die Scp Der Befehl bietet auch Zuverlässigkeit, Geschwindigkeit und Sicherheit und arbeitet über das SSH -Protokoll aus. Dieser zweite Befehl wurde auch bei Linux -Hinweis zutiefst erklärt (der Link wurde in der Einführung dieses Dokuments angegeben).