Unter Linux einbinden und aushängen
sudo apt install sshfs
mkdir -p ~/mnt/server
sshfs user@server:/var/www ~/mnt/server
Jetzt zeigt ls ~/mnt/server den Ordner auf dem Server, und Dateien, die Sie dort schreiben, werden auf dem Server geschrieben. Ein Pfad ohne führenden Schrägstrich, wie in server:project, beginnt in Ihrem Home-Ordner dort. Unter Fedora heißt das Paket fuse-sshfs.
fusermount3 -u ~/mnt/server
Auf älteren Systemen kann der Befehl fusermount ohne die 3 lauten. Sind Sie im Ordner oder hat ein Programm eine Datei geöffnet, scheitert er mit Device or resource busy. Verlassen Sie den Ordner und versuchen Sie es erneut.
Ihre üblichen Schlüssel, Einträge in ~/.ssh/config und Port-Optionen funktionieren:
sshfs server:project ~/mnt/server
sshfs -p 2222 user@server:/srv ~/mnt/server
sshfs -o IdentityFile=~/.ssh/id_work user@server:/srv ~/mnt/server
Nützliche Optionen
| Option | Was sie tut |
|---|---|
-o reconnect | Verbindet sich nach einer abgebrochenen Verbindung neu |
-o ServerAliveInterval=15,ServerAliveCountMax=3 | Erkennt eine tote Verbindung, statt zu hängen |
-o ro | Bindet nur lesend ein |
-o idmap=user | Zeigt die Dateien des entfernten Benutzers als Ihre an |
-o follow_symlinks | Folgt Symlinks auf dem Server |
-o allow_other | Lässt andere lokale Benutzer das eingebundene Verzeichnis sehen |
Ein praktischer Befehl für jeden Tag:
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@server:/srv ~/mnt/server
allow_other scheitert als normaler Benutzer mit dieser Meldung, bis Sie user_allow_other in /etc/fuse.conf eintragen:
fusermount3: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Wenn die Verbindung abbricht
Wir haben die Sitzung auf dem Server in drei Aufbauten beendet:
| Aufbau | Ergebnis |
|---|---|
| Einfaches Einbinden, Sitzung beendet | sshfs endete und der Ordner war wieder leer, ohne eingebundenes Verzeichnis |
-o reconnect, Sitzung beendet | Das nächste ls funktionierte über eine neue Verbindung |
sshfs-Prozess mit kill -9 beendet | ls: cannot access ...: Transport endpoint is not connected |
Im letzten Fall räumt fusermount3 -u ~/mnt/server auf, und Sie können erneut einbinden.
Mit reconnect kann sich eine Anmeldung, die ein getipptes Passwort braucht, nicht von selbst neu verbinden, verwenden Sie also einen Schlüssel ohne Abfrage oder einen Agent.
Häufige Überraschungen
- Der Inhalt des lokalen Ordners verschwindet aus der Sicht. sshfs wurde in unserem Test über einen Ordner mit einer Datei eingebunden und verbarg diese Datei bis zum Aushängen. Nehmen Sie einen leeren Ordner.
- Dateien zeigen einen anderen Besitzer. Ohne
idmap=userwerden numerische Besitzer vom Server unverändert angezeigt, etwa 1000. In unserem Test erschienen sie mitidmap=userals der lokale Benutzer. - Es ist keine lokale Platte. Jedes Lesen und Schreiben läuft übers Netz. Werkzeuge, die viele Dateien durchlaufen, etwa
git statusoder ein Code-Indexer, können langsam sein. - Der Pfad muss existieren. Ein falscher Pfad scheitert sofort mit
server:nosuch: No such file or directory.
macOS: macFUSE
macFUSE bringt FUSE-Unterstützung mit und enthält selbst keine Dateisysteme. Auf der Website gibt es ein SSHFS-Paket als separaten Download. Installieren Sie zuerst macFUSE, dann SSHFS.
macFUSE hat zwei Backends. Standard ist die Kernel-Erweiterung, und auf Apple Silicon verlangt sie beim ersten Mal einen Neustart in die Wiederherstellung, um Erweiterungen von Drittanbietern zu erlauben. Laut macFUSE-Dokumentation läuft das FSKit-Backend unter macOS 26 ohne diese Änderung: Fügen Sie die Mount-Option -o backend=fskit hinzu. Hängen Sie aus mit:
umount ~/mnt/server
Stand des Projekts
Laut README von SSHFS gibt es keine aktiven regelmäßigen Mitwirkenden, und der Maintainer übernimmt Pull Requests und erstellt Releases, behebt aber nur Probleme mit großer Wirkung. Es funktioniert, wie unser Test zeigt, aber bedenken Sie das bei allem Kritischen. Für regelmäßige Übertragungen passt rsync oft besser.
Welches Werkzeug wann passt, zeigt scp, sftp oder rsync.
Fragen
Braucht sshfs etwas auf dem Server?
Nur einen normalen SSH-Server mit aktiviertem SFTP. Scheitert sftp mit subsystem request failed, hilft die Anleitung zu diesem Fehler.
Warum ist sshfs langsam?
Jeder Lese- und Schreibzugriff geht über das Netz. Am stärksten merken das Werkzeuge, die viele Dateien durchgehen, etwa git status oder ein Code-Indexer. Für Tempo kopieren Sie mit rsync.
Wie behebe ich Transport endpoint is not connected?
Der sshfs-Prozess ist beendet und hat den Mount zurückgelassen. Führen Sie fusermount3 -u auf dem Ordner aus, unter macOS umount, und mounten Sie neu. Mit -o reconnect übersteht der Mount Verbindungsabbrüche.