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 zuPREFIX
. 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!