SSHFS – der derzeit gepflegte Fork von SSHFS
(github.com/deadbeefsociety)- SSHFS ermöglicht das Mounten entfernter Dateisysteme über SFTP und kann ohne Arbeiten auf der Serverseite verwendet werden, da die meisten SSH-Server SFTP-Zugriff standardmäßig unterstützen und aktivieren
- Der Maintenance-Fork deadbeefsociety/sshfs wurde archiviert, weil SSHFS nicht mehr sich selbst überlassen ist; verwendet werden sollte libfuse/sshfs
- SSHFS ist in wichtigen Linux-Distributionen enthalten und wird auf vielen Systemen seit Langem produktiv eingesetzt, hat derzeit jedoch keine regelmäßig aktiven Mitwirkenden; bekannte Issues finden sich im Bugtracker
- Der aktuelle Maintainer übernimmt weiterhin Pull Requests und veröffentlicht regelmäßig Releases, hat aber außer bei Issues mit hoher Auswirkung keine Kapazität für Entwicklung; Bugreports ohne Pull Request oder nicht kritische Issues erhalten wahrscheinlich keine Antwort
- Das grundlegende Aufrufformat ist
sshfs [user@]hostname:[directory] mountpoint; die Ausführung als normaler Benutzer wird empfohlen, und der Mountpoint sollte diesem Benutzer gehören- Wenn der Benutzername weggelassen wird, wird der lokale Benutzername verwendet
- Wenn das Verzeichnis weggelassen wird, wird das entfernte Home-Verzeichnis eingehängt
- Wenn ein Passwort erforderlich ist, fragt
ssh, das von sshfs ausgeführt wird, nach dem Passwort
- Es können verschiedene ssh-Optionen einschließlich
-oport=PORTangegeben werden; zum Aushängen verwendet man unter Linuxfusermount -u mountpoint, unter BSD und macOSumount mountpoint - Für den Build werden libfuse 3.1.0 oder neuer bzw. eine mit libfuse3 kompatible Schnittstelle, Glib mit Development-Headern, Meson 0.38 oder neuer und Ninja benötigt; zum Ausführen der Tests wird das Python-Modul
py.testbenötigt
1 Kommentare
Hacker-News-Kommentare
Wenn man etwas im Userspace möchte und Emacs in Ordnung ist, gibt es TRAMP „Transparent Remote (file) Access, Multiple Protocol“: https://www.gnu.org/software/tramp/
Ich nutze es häufig, um vom MacBook Pro aus auf Serverdateien zuzugreifen.
cden kann und dann aus dem aktuellen Arbeitsverzeichnis heraus Dateien auf die lokale Maschine oder auf ein anderes Remote-Systemcpen kann – und umgekehrt auch von lokal in das aktuelle Remote-Arbeitsverzeichnis kopieren kann.Bevor ich TRAMP nutzte, musste ich per SSH auf das Remote-System, mit
cdundlsdie Kopierstelle suchen, die SSH-Session beenden, die Datei mitscpoderrsyncübertragen und mich meist wieder per SSH einloggen.dired,eshellundmagit.Interessant. Ich dachte immer, sshfs sei Teil von OpenSSH, aber man lernt jeden Tag etwas Neues.
Das sshfs, das in Slackware verwendet wird, scheint ebenfalls verwaist zu sein: https://github.com/libfuse/sshfs
Angesichts des Zitats im Link frage ich mich, ob dieses Projekt der „Nachfolger“ werden könnte.
Nur als Hinweis: Nachdem ich auf dem Mac jahrelang macFUSE + sshfs genutzt habe, installiere ich inzwischen nur noch das hervorragende Tool Mountain Duck. Damit kann man über Finder und Mount-Punkte auf SFTP-Endpunkte zugreifen.
Sehr gute Software und für mich unverzichtbar.
Vor ein paar Monaten habe ich deswegen ExpanDrive/StrongSync ausprobiert; von Mountain Duck habe ich erst jetzt gehört. Cyberduck mag ich. Ich werde es jetzt ausprobieren – wenn es gut funktioniert, wäre es schön, wenn diese Seite für andere aktualisiert würde. Ansonsten bin ich ein zufriedener Kunde.
Eine sshfs-Implementierung ist ebenfalls unter https://github.com/macos-fuse-t/fuse-t/wiki#sample-filesyste... aufgeführt.
Libfuse/SSHFS ist unter macOS seit einigen Jahren ziemlich mühsam zu nutzen geworden, und deshalb bin ich ebenfalls zu Mountain Duck gewechselt.
Schade, dass sshfs nicht mehr gepflegt wird. In der Uni habe ich sshfs genutzt, um Code mit meinen zahlreichen Vim-Plugins zu bearbeiten, ohne sie alle auf den Remote-Rechenservern der Hochschule installieren zu müssen.
Ich war überrascht, wie reibungslos das System funktionierte.
Ich halte SFTP für ein gutes, aber unterschätztes Protokoll. Manchmal ist es sinnvoller, bidirektional zu spiegeln, als einen Dateibaum von einer Seite auf die andere zu replizieren.
Nachdem ich den SSHFS-Code geforkt und mir angesehen habe, pflege ich unter https://hackmd.io/@q/sftp-over-ws eine Sammlung relevanter Materialien und persönlicher Gedanken.
Sowohl die OpenSSH- als auch die GNU-lsh-Server bieten nur alte Protokollversionen an, vermutlich v2. Dieses Alter ist eine bewusste Entscheidung: https://marc.info/?l=openssh-unix-dev&m=168488976013498&w=2
Die Technikkombination ist etwas anders, aber ich nutze seit einiger Zeit recht zufrieden NFS über WireGuard.
Außerdem sind mehr Dateisystemfunktionen implementiert, sodass
df-Berichte die Nutzung des Remote-Dateisystems korrekt widerspiegeln.Zusätzlich bietet NFSv4 „Delegations“, mit denen einem Client die vollständige Kontrolle über eine Datei in Form eines auslaufenden Leases gegeben werden kann. Moderne NFS-Clients haben außerdem „polite delegations“, die die Lease-Dauer implizit verlängern.
SSHFS ist sehr praktisch für ein „schnelles und grobes“ Mounten mit minimaler Konfiguration.
Ich synchronisiere Dateien mit einem sehr einfachen DVFS-Storage-Utility und habe es seitdem nicht bereut. Ich mag es, mehrere Kopien an verschiedenen Orten zu haben.
Derzeit nutze ich meist rclone mount, wenn ich sshfs-Funktionalität brauche. Performance, Stabilität und Cache-Optionen sind besser.
sshfs könnte dieselbe Einschränkung auch haben.
Leider wirkt dieser Fork nicht besonders aktiv. Der letzte Commit ist von März, und bei PRs und Issues passiert ebenfalls kaum etwas.
Darauf würde ich nicht setzen.
Nautilus, also der Datei-Explorer von Ubuntu, unterstützt das Mounten von SFTP-Ordnern. Intern scheint es
gvfszu verwenden.Da SFTP für Dateiübertragungen eine SSH-Verbindung nutzt, habe ich im Vergleich zu SSHFS keinen UI-Unterschied gesehen.
Ich erinnere mich nicht mehr genau.
Hat jemand unter Mac OS X rclone oder sshfs zusammen mit macFUSE/osxfuse ausprobiert?
Für jeden Server habe ich ein kleines Skript. Zum Beispiel
mount_fooserver.sh:umount -f ~/mounts/fooserversshfs -o kill_on_unmount,reconnect,allow_other,defer_permissions,direct_io username@server:/ ~/mounts/fooserver -ovolname=fooDie Einrichtung fühlte sich ziemlich abenteuerlich an, und ein paar Mal fragte ich mich, ob das wirklich richtig ist, aber als ich drangeblieben bin, funktionierte es gut.