GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie SSHFS-Mount mit Remote-Verzeichnissen über SSH

Es ist bequemer, an einem Remote-Verzeichnis zu arbeiten, als wäre es ein lokales, finden Sie nicht? Was wäre, wenn Sie diese Dateien direkt verwalten könnten, anstatt Dateien über SCP, SFTP oder FTP aus der Ferne zu verschieben und abzurufen? Glücklicherweise ist der SSHFS-Mount eine schnelle Lösung für dieses Dilemma.

In diesem Tutorial erfahren Sie, wie Sie SSHFS-Mount verwenden, damit Sie auf den Inhalt des Remote-Verzeichnisses auf Ihrem lokalen Computer zugreifen können. Egal, ob Sie Windows- oder Linux-Benutzer sind, dieses Tutorial deckt Sie ab.

Das spezifische Anwendungsbeispiel in diesem Tutorial demonstriert das Aktualisieren des Inhalts einer Website in einem SSHFS-gemounteten Verzeichnis eines Remote-Servers. Das allgemeine Konzept sollte jedoch auf Ihre spezifische Situation zutreffen und ist nicht nur auf Webserver beschränkt.

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Linux-Webserver – Dieses Tutorial verwendet einen Fedora 35 namens wbserver mit installiertem Apache HTTP Server. Dieser Server enthält das entfernte Verzeichnis, das das Ziel des SSHFS-Mounts sein wird.
  • Ein Linux-Client – ​​Dieses Tutorial verwendet einen Fedora 35-Client namens fedora .
  • Ein Windows-Client (Windows 7 und höher) – Dieses Tutorial verwendet einen Windows 10-Client namens win10pc .

Vorbereiten des Remote-Verzeichnisses

Dieses Tutorial arbeitet am Remote-Verzeichnis auf wbserver Server namens /var/www/html . Standardmäßig hat nur das Root-Konto Zugriff auf diesen Ordner. Da Sie nicht das Root-Konto des Servers verwenden, müssen Sie stattdessen dem angegebenen Benutzerkonto die Berechtigung für das Verzeichnis erteilen.

In diesem Beispiel ist das festgelegte Benutzerkonto zum Mounten und Zugreifen auf das SSHFS-Mount adm1 . Befolgen Sie die nachstehenden Schritte, um adm1 zu geben die richtigen Berechtigungen für /var/www/html auf wbserver .

1. Melden Sie sich bei wbserver an mit Ihrem bevorzugten SSH-Client.

2. Führen Sie als Nächstes den folgenden Befehl aus, um dem Benutzer adm1 Vollzugriff (rwx) auf den Ordner /var/www/html zu erteilen.

sudo setfacl -m u:adm1:rwx /var/www/html

3. Bestätigen Sie abschließend, dass die Berechtigung korrekt ist, indem Sie den folgenden Befehl ausführen.

sudo getfacl -a /var/www/html

Wie Sie unten sehen können, hat adm1 jetzt Lese-/Schreibzugriff auf den Ordner.

SSHFS-Mount unter Linux verwenden

SSHFS ist in erster Linie ein Linux-Tool, und Sie müssen nur ein paar Befehle ausführen, um ein Remote-Verzeichnis auf Ihrem Computer bereitzustellen. Die Installation der Pakete zur Aktivierung des SSHFS-Mounts ist so bequem wie die Installation anderer Pakete unter Linux über den Paketmanager Ihrer Distribution.

SSHFS installieren und Remote-Verzeichnis mounten

Führen Sie die folgenden Schritte aus, um das SSHFS-Mount-Paket zu installieren und ein Remote-Verzeichnis in einem lokalen Pfad zu mounten.

1. Melden Sie sich je nach Umgebung über SSH oder Desktop bei Ihrem Linux-Client an.

2. Führen Sie den folgenden Befehl aus, um das Paket fuse-sshfs mit Ihrem Paketmanager zu installieren.

Hinweis:Bei Debian-basierten Linux-Distributionen lautet der Paketname sshfs.

sudo dnf install -y fuse-sshfs

Der Paketmanager installiert auch die Abhängigkeiten, die noch nicht auf Ihrem Computer vorhanden sind. Und da jede Paketgröße weniger als 100 KB beträgt, dauerte der Download und die Installation nur wenige Sekunden.

3. Erstellen Sie als Nächstes einen neuen Ordner in Ihrem Home-Verzeichnis namens mnt. Dieser neue Ordner ist der Einhängepunkt für das entfernte Verzeichnis.

mkdir ~/mnt

4. Nachdem Sie den Einhängepunkt erstellt haben, führen Sie den folgenden sshfs-Befehl aus.

Mit diesem Befehl wird das Remote-Verzeichnis (/var/www/html) des Webservers (wbserver) an den lokalen Mount-Punkt (~/mnt) gemountet, den Sie erstellt haben, während Sie die Anmeldeinformationen von adm1 für den Zugriff verwenden.

sshfs [email protected]:/var/www/html ~/mnt

Wenn der SSH-Server den Standardport 22 nicht überwacht, müssen Sie den Schalter -o Port mit dem Befehl sshfs angeben. Wenn der Remote-Server beispielsweise Port 2222 überwacht, lautet der Befehl sshfs -o port 2222.

5. Wenn Sie sich zum ersten Mal mit dem Server verbinden, bestätigen Sie the Verbindung durch Drücken von Y Geben Sie an der Eingabeaufforderung das Passwort des Kontos ein und drücken Sie Enter .

6. Bestätigen Sie abschließend, dass Sie das Remote-Verzeichnis erfolgreich gemountet haben, indem Sie den folgenden Befehl ausführen.

findmnt

Sie sollten sehen, dass das Remote-Verzeichnis jetzt in das von Ihnen angegebene lokale Verzeichnis eingehängt ist.

Automount beim Booten aktivieren

Während Sie das Remote-Verzeichnis erfolgreich gemountet haben, denken Sie daran, dass dieser Mount-Status nicht dauerhaft ist. Beim Neustart des Computers wird das Remote-Verzeichnis nicht automatisch bereitgestellt.

Sie können jedoch dafür sorgen, dass der SSHFS-Mount Computerneustarts übersteht, indem Sie /etc/fstab bearbeiten -Datei und Aktivieren der schlüsselbasierten Authentifizierung für adm1 Konto. Die Aktivierung der schlüsselbasierten SSH-Authentifizierung stellt sicher, dass der SSHFS-Mount vollständig automatisiert wird (keine Passwortabfragen).

1. Generieren Sie auf dem Linux-Client ein neues SSH-Schlüsselpaar, indem Sie den folgenden Befehl ausführen.

ssh-keygen

Geben Sie in der Eingabedatei, in der die Eingabeaufforderung gespeichert werden soll, den Namen der Schlüsseldatei ein und drücken Sie die Eingabetaste. In diesem Beispiel lautet der zu speichernde Schlüsseldateiname /home/user1/.ssh/[email protected]

Lassen Sie die Passphrase leer und drücken Sie zweimal die Eingabetaste. Der folgende Screenshot zeigt das Ergebnis der Schlüsselpaarerstellung.

2. Kopieren Sie nun den Schlüssel auf den Webserver. Der folgende Befehl installiert den zuvor generierten Schlüssel (/home/user1/.ssh/[email protected]) im adm1-Konto auf wbserver.

ssh-copy-id -i /home/user1/.ssh/[email protected] [email protected]

Geben Sie an der Eingabeaufforderung das Passwort ein, z. B. [email protected], und drücken Sie die Eingabetaste. Wie Sie unten sehen können, hat der Befehl den Schlüssel erfolgreich auf dem Server installiert.

3. SSH in wbserver mit dem Schlüsselpaar, um sicherzustellen, dass die schlüsselbasierte Anmeldung funktioniert.

ssh -i /home/user1/.ssh/[email protected] [email protected]

Als Ergebnis sollte die Anmeldung erfolgreich sein, ohne nach einem Passwort zu fragen. Geben Sie exit ein und drücken Sie die Eingabetaste, um sich vom WB-Server abzumelden.

4. Nachdem Sie nun die schlüsselbasierte SSH-Authentifizierung für das SSHFS-Benutzerkonto konfiguriert haben, können Sie den dauerhaften SSHFS-Mount konfigurieren.

Öffnen Sie die Datei /etc/fstab in einem Texteditor.

sudo nano /etc/fstab

5. Fügen Sie den folgenden Code an das Ende der Datei /etc/fstab an. Achten Sie darauf, den Wert identityfile=mit dem Pfad der SSH-Schlüsseldatei zu ändern.

[email protected]:/var/www/html /home/user1/mnt fuse.sshfs identityfile=/home/user1/.ssh/[email protected],allow_other,_netdev 0 0

6. Speichern Sie nach der Bearbeitung die Datei, schließen Sie den Texteditor und starten Sie den Computer neu. Wie Sie unten sehen können, ist der SSHFS-Mount nach dem Neustart wieder verfügbar.

Testen des SSHFS-Mounts

Sie haben also das Remote-Verzeichnis auf Ihrem lokalen Computer gemountet. Die Frage ist jetzt:"Funktioniert es?". Der schnellste Test zur Bestätigung besteht darin, eine neue Datei zu erstellen und sie am SSHFS-Einhängepunkt zu speichern. Die erstellte Datei sollte dann auf dem Server erscheinen.

Standardmäßig ist die /var/www/html Ordner auf dem Webserver ist leer. Wenn Sie auf die Website zugreifen, die auf https://wbserver gehostet wird , sehen Sie nur die Standard-Testseite, wie im Screenshot unten.

In diesem Beispiel erstellen Sie eine neue Startseite und bestätigen, dass der Webserver diese neue Seite anzeigt.

1. Wechseln Sie das Arbeitsverzeichnis zu ~/mnt, dem SSHFS-Einhängepunkt.

cd ~/mnt

2. Führen Sie den touch-Befehl aus, um eine index.html-Datei zu erstellen und öffnen Sie sie im Texteditor.

touch index.html && nano index.html

3. Füllen Sie nun die Datei index.html mit dem folgenden HTML-Code, speichern Sie die Datei und beenden Sie den Editor.

Welcome

I was put here over SSH by SSHFS

Der folgende Screenshot zeigt den erwarteten Inhalt der Datei index.html.

4. Öffnen Sie zuletzt die Website-URL erneut in Ihrem Webbrowser. Der Webserver sollte die neue Homepage aufnehmen und anzeigen, wie Sie unten sehen können.

Herzliche Glückwünsche! Sie haben den SSHFS-Mount nun erfolgreich auf Ihrem Linux-Computer implementiert. Sie müssen keine Remote-Dateien hoch- oder herunterladen, um Änderungen manuell vorzunehmen.

Unmounten des Remote-Verzeichnisses

Angenommen, Sie benötigen keinen Zugriff mehr auf das Remote-Verzeichnis über SSHFS-Mount und möchten es unmounten, führen Sie einen der folgenden Befehle aus.

Führen Sie den folgenden Befehl aus, wenn Sie das Remote-Verzeichnis interaktiv mit sshfs gemountet haben Werkzeug.

fusermount -u /home/user1/mnt

Wenn Sie das Remote-Verzeichnis automatisch in fstab gemountet haben , führen Sie stattdessen den folgenden Befehl aus. Außerdem müssen Sie den SSHFS-Automount-Eintrag in fstab entfernen . Wenn nicht, wird das Remote-Verzeichnis nach einem Neustart automatisch wieder eingehängt.

sudo umount /home/user1/mnt

SSHFS-Mount unter Windows verwenden

Windows-Computer können Netzwerkstandorte als lokale Laufwerke zuordnen, z. B. FTP-Sites, Netzwerkfreigaben und SharePoint-Bibliotheken. Es wird Sie freuen zu hören, dass Sie SSHFS-Mount-Laufwerke auch in Windows hinzufügen können, indem Sie ein Programm namens SSHFS-Win installieren – eine Portierung von SSHFS unter Linux.

Installieren von WinFsp und SSHFS-Win

SSHFS-Win erfordert WinFsp, um zu funktionieren, da es die zugrunde liegende FUSE-Funktionalität bereitstellt. Befolgen Sie die nachstehenden Anweisungen, um sowohl WinSfp als auch SSHFS-Win zu installieren.

1. Öffnen Sie den Browser auf Ihrem Windows-Client und laden Sie die neueste Version von WinSfp (v1.10) und SSHFS-Win (v3.5.20357) herunter.

2. Suchen Sie die heruntergeladenen Installationsprogramme und führen Sie zuerst das WinSfp-Installationsprogramm aus.

3. Klicken Sie auf der Seite Welcome to the WinFsp 2022 Setup Wizard auf Next.

4. Wählen Sie alle Funktionen aus und klicken Sie auf Weiter.

5. Klicken Sie auf der Seite Bereit zur Installation von WinFsp 2022 auf Installieren.

6. Klicken Sie nach der WinFsp-Installation auf Fertig stellen.

7. Als nächstes starten Sie das SSHFS-Win-Installationsprogramm.

8. Klicken Sie im ersten Bildschirm wie unten gezeigt auf Weiter, um den Installationsvorgang zu starten.

9. Klicken Sie auf der Seite Benutzerdefinierte Einrichtung auf Weiter.

10. Klicken Sie auf der Seite Bereit zur Installation von SSHFS-Win auf Installieren.

11. Klicken Sie abschließend auf Fertig stellen, um den Einrichtungsassistenten zu beenden.

Die Syntax des SSHFS-Pfads verstehen

Bevor Sie ein Remote-Verzeichnis über SSHFS-Mount zuordnen, überprüfen Sie die folgende Liste, um zu verstehen, wie SSHFS-Win die Remote-Pfade interpretiert.

\\\\PREFIX\\[email protected][!PORT][\\PATH]
  • REMUSER ist der Remote-Benutzer, dessen Anmeldeinformationen Sie verwenden, um sich beim Remote-Server zu authentifizieren.
  • HOST ist der Hostname oder die IP-Adresse des Remote-Servers.
  • PORT ist der SSH-Listening-Port des Remote-Servers. Dieser Wert ist optional und der Standardwert ist Port 22.
  • PATH ist der Remote-Pfad relativ zu PREFIX . Die verschiedenen Präfixe sind:
    • sshfs – wird dem Pfad relativ zum Home-Verzeichnis des Benutzers zugeordnet (d. h. HOST:~REMUSER/PATH ).
    • sshfs.r – wird einem Pfad relativ zum Stammverzeichnis des Hosts zugeordnet (d. h. HOST:/PATH )
    • sshfs.k – wird dem Pfad relativ zum Home-Verzeichnis des Benutzers zugeordnet (d. h. HOST:~REMUSER/PATH ) und verwendet eine SSH-schlüsselbasierte Authentifizierung. Dieses Präfix verwendet den Schlüssel in %USERPROFILE%/.ssh/id_rsa zur Authentifizierung.
    • sshfs.kr – wird einem Pfad relativ zum Stammverzeichnis des Hosts zugeordnet (d. h. HOST:/PATH ) und verwendet den Schlüssel in %USERPROFILE%/.ssh/id_rsa zur Authentifizierung.

Mounten und Unmounten des Remote-Verzeichnisses mit dem Windows-Datei-Explorer

Eine Möglichkeit, ein Netzlaufwerk in Windows zuzuordnen, ist der Windows-Datei-Explorer. Bei dieser Methode müssen Sie keine Befehle ausführen und führen jeden Schritt in einer GUI im Assistentenstil aus.

1. Öffnen Sie ein Datei-Explorer-Fenster und klicken Sie auf Dieser PC —> Computer —> Netzlaufwerk verbinden .

2. Wählen Sie einen Laufwerksbuchstaben und geben Sie den folgenden Pfad in das Feld Ordner ein, um den Ordner \var\www\html einzuhängen.

\\sshfs.r\[email protected]\var\www\html

Lassen Sie die Option Bei der Anmeldung erneut verbinden aktiviert und klicken Sie auf Fertig stellen.

3. Geben Sie das Kontokennwort ein, aktivieren Sie das Kontrollkästchen „Mich speichern“ und klicken Sie auf „OK“.

Sie haben jetzt einen SSHFS-Mount mit einem Laufwerksbuchstaben zugeordnet. Und da Sie die Optionen „Beim Anmelden wiederherstellen“ und „Mich speichern“ aktiviert haben, stellt Windows die SSHFS-Bereitstellung nach dem Neustart des Computers wieder her.

4. Jetzt können Sie die Dateien im Remote-Verzeichnis verwalten. Wenn Sie das zugeordnete Laufwerk jedoch nicht mehr benötigen und es entfernen möchten, klicken Sie mit der rechten Maustaste auf den SSHFS-Mount und klicken Sie auf Trennen.

Mounten und Unmounten des Remote-Verzeichnisses über die Befehlszeile

Der Befehl net use ist eine weitere Möglichkeit, ein Remote-Verzeichnis in Windows zuzuordnen. Das Zuordnen von SSHFS-Mount-Laufwerken über die Befehlszeile ist hilfreich für Scripting und Automatisierung.

Um das Remote-Verzeichnis zu mounten, öffnen Sie die Eingabeaufforderung oder PowerShell und führen Sie den folgenden Befehl aus, um den \\var\\www\\html zuzuordnen remote-Verzeichnis auf das Laufwerk Z des lokalen Computers . Stellen Sie sicher, dass Sie den PASSWORD ändern value mit dem Passwort des entfernten Benutzers.

net use Z: \\\\sshfs.r\\[email protected]\\var\\www\\html PASSWORD /user:adm1

Um das SSHFS-Mount-Laufwerk über die Befehlszeile zu entfernen, delete die Zuordnung zu Laufwerk Z: indem Sie den folgenden Befehl ausführen.

net use Z: /delete

Testen des SSHFS-Mounts

Da Sie nun Zugriff auf ein lokal zugeordnetes Netzlaufwerk haben, können Sie die Dateien im Remote-Verzeichnis wie alle anderen lokalen Dateien verwalten. In diesem Beispiel aktualisieren Sie die Homepage der Website direkt vom zugeordneten SSHFS-Laufwerk.

1. Öffnen Sie den Datei-Explorer und navigieren Sie zum zugeordneten Laufwerk.

2. Öffnen Sie die Datei namens index.html in einem Texteditor wie Notepad. Wenn die Datei nicht existiert, erstellen Sie sie zuerst.

3. Kopieren Sie den folgenden HTML-Code und fügen Sie ihn in Ihre index.html ein und speichern Sie die Datei.

Welcome

I was put here over SSH by SSHFS

Brought to You from Windows 10

4. Öffnen Sie zuletzt Ihren Webbrowser und navigieren Sie zur Website-URL HTTP://wbserver . Sie sollten jetzt die von Ihnen bearbeitete aktualisierte Homepage sehen, die bestätigt, dass Ihr SSHFS-Mount wie vorgesehen funktioniert.

Schlussfolgerung

Sie haben endlich das Ende dieses Tutorials erreicht. Sie haben gelernt, den SSHFS-Mount zu verwenden, um Verzeichnisse von einem entfernten SSH-Server auf Ihren lokalen Windows- oder Linux-Computer abzubilden. SSHFS ist ein hervorragendes Tool für Komfort und Sicherheit beim Remote-Dateizugriff.

Apropos Sicherheit, vielleicht sollten Sie sich als nächsten Schritt How To Secure SSH with Fail2Ban ansehen? Viel Glück!


Linux
  1. SCP-Befehl in Linux:Verwendung mit Beispielen

  2. Wie verwendet man Ssh-Copy-ID mit Multiple-Hop-SSH-Tunnel?

  3. Linux – Wie wird ein Remote-Dateisystem mit Angabe einer Portnummer gemountet?

  4. Wie man Verzeichnisse über ssh unterscheidet

  5. Wie arbeite ich mit GUI-Tools über einen Remote-Server?

SSHFS:Mounten eines Remote-Dateisystems über SSH

So mounten Sie ein Remote-Linux-Dateisystem mit SSHFS

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server herzustellen

So verwenden Sie einen SSH-Schlüssel mit Nicht-Root-Benutzern

Mounten Sie einen Remote-Ordner mit sshfs

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server unter Linux oder Windows herzustellen