Einen Ordner vom Server per SSH mit sshfs einbinden

Installieren Sie sshfs, legen Sie einen leeren Ordner an und führen Sie sshfs user@server:/path ~/mnt/server aus. Der entfernte Ordner verhält sich dann wie ein lokaler. Zum Aushängen führen Sie unter Linux fusermount3 -u ~/mnt/server aus, unter macOS umount ~/mnt/server. Der Server braucht nur normales SSH mit aktiviertem SFTP. Auf einem Mac braucht sshfs zuvor macFUSE.

Sie mounten nur, um ein paar Dateien zu kopieren oder zu bearbeiten? Wardterm erledigt das in einem eingebauten Dateibrowser. Zeigen

Aktualisiert am . SSHFS 3.7.3 mit FUSE 3.17.2 als root unter Debian 13 in einem privilegierten Wegwerf-Container, gegen OpenSSH 10.0 in einem anderen.

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

OptionWas sie tut
-o reconnectVerbindet sich nach einer abgebrochenen Verbindung neu
-o ServerAliveInterval=15,ServerAliveCountMax=3Erkennt eine tote Verbindung, statt zu hängen
-o roBindet nur lesend ein
-o idmap=userZeigt die Dateien des entfernten Benutzers als Ihre an
-o follow_symlinksFolgt Symlinks auf dem Server
-o allow_otherLä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:

AufbauErgebnis
Einfaches Einbinden, Sitzung beendetsshfs endete und der Ordner war wieder leer, ohne eingebundenes Verzeichnis
-o reconnect, Sitzung beendetDas nächste ls funktionierte über eine neue Verbindung
sshfs-Prozess mit kill -9 beendetls: 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=user werden numerische Besitzer vom Server unverändert angezeigt, etwa 1000. In unserem Test erschienen sie mit idmap=user als der lokale Benutzer.
  • Es ist keine lokale Platte. Jedes Lesen und Schreiben läuft übers Netz. Werkzeuge, die viele Dateien durchlaufen, etwa git status oder 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.

Quellen

Mehr zu SFTP und Dateiübertragung

Alle Anleitungen