SHFS: Das SSH Dateisystem
|
SHFS ermöglicht es das Dateisystem eines jeden Rechners zu mounten,
auf dem man einen SSH-Zugang besitzt. Die Datenübertragung erfolgt
dabei vollständig verschlüsselt und benötigt keinerlei zusätzliche
Konfiguration auf dem entfernten Rechner.
|
Netzwerkdateisysteme
Um über das Netzwerk Dateisysteme zu mounten, nutzt man entweder NFS (siehe auch: LNM - Netzgeflüster unter GNU/Linux SuSE mit KDE 3.x) mit seinen bekannten Sicherheitsschwächen, welche nur mit größerem Aufwand durch ein SSH-tunneln des Protokolls gelöst werden können, oder man nimmt AFS, welches aber in der Administration sehr aufwändig ist und sich erst in größeren Firmennetzwerken lohnt.
Beide Lösungen benötigen aber auf der Gegenseite einen NFS- bzw. AFS-Server und sind somit nur dann einsetzbar, solange dieser Dienst aktiviert wurde und ein Zugriff mittels des jeweiligen Dienstes vom eigenen Rechner aus erlaubt ist.
SHFS
SHFS geht einen ganz anderen Weg. Ein Kernel-Modul (shfs.o),
welches auf dem Client-Rechner installiert werden muß, simuliert dem Benutzer
ein Dateisystem. Jeder Zugriff auf das mit SHFS gemountete Verzeichnis
wird mittels SSH an den entfernten Rechner übertragen und dort ausgeführt.
Dies alles geschieht für den Benutzer völlig transparent, d.h. er bemerkt
nichts von der Kommunikation zwischen beiden Rechnern und kann arbeiten, wie
in einem lokalen Verzeichnis.
Das Kernelmodul ist nur auf Client-Seite nötig und funktioniert zusammen mit Kernel 2.4.10+ und 2.6.x. Für die Gegenseite genügt ein übliches Unix-System, welches SSH-Zugriff erlaubt.
Installation
Von der Hompage des Projektes shfs.sourceforge.net kann man die aktuelle Version der Software herunterladen (momentan 0.35): http://sourceforge.net/project/showfiles.php?group_id=72997&package_id=93905
Die Installation beschränkt sich auf Entpacken,
>> tar zxvf shfs-0.35.tar.gz -C /tmp/ >> cd /tmp/shfs-0.35Kompilieren und Installieren (als root):
>> make >> su (Passwort) >> make install
SHFS im Einsatz
Ist die Installation von SHFS fehlerfrei verlaufen, kann man sofort beginnen das System einzusetzen. Als erstes sollte man die Mount-Punkte erstellen, in die später die fremden Dateisysteme eingehängt werden. Standardmäßig gehört sowas immer nach /mnt.
>> mkdir /mnt/rechner1Als nächstes wird das Kernelmodul geladen:
>> /sbin/insmod shfs Using /lib/modules/2.4.22-1.2174.nptl/kernel/fs/shfs/shfs.oNun kann das fremde Dateisystem eingehängt werden. Der Befehl hierfür lautet
>> shfsmount user@rechner1 /mnt/rechner1Wobei user der Username auf dem entfernten Rechner ist.
Wenn man keinen SSH-Key-Agent benutzt, wird man nun nach dem SSH-Passwort gefragt. Das wars dann aber auch schon. Ab sofort steht das entfernte Dateisystem jedem Programm zur Verfügung:
>> ls -l /mnt/rechner1 insgesamt 669 -rw------- 1 root root 14296 21. Apr 11:14 #160404# -rw-r--r-- 1 root root 11372 12. Jul 14:46 all.ps -rw-r--r-- 1 root root 10017 15. Mär 2004 altarelli.eps -rw-r--r-- 1 root root 9962 25. Aug 17:33 arm.for drwxr-xr-x 2 root root 2048 6. Apr 14:00 att -rw-r--r-- 1 root root 306 12. Mär 2004 basic.root [...]Wie man erkennt, wurde mit dem benutzten shfsmount-Befehl nur das Home-Verzeichnis des entfernten Rechners gemountet; und die Dateien gehören alle dem Benutzer root.
Das Mounten anderer Verzeichnisse erreicht man, indem ganz analog wie beim scp-Befehl das gewünschte Verzeichnis mit angegibt, z.B.:
>> shfsmount user@rechner1:/usr/local /mnt/rechner1Um die Dateirechte einzustellen, existieren die Optionen rmode, uid und gid:
>> shfsmount user@rechner1 /mnt/rechner1 -o preserve,rmode=755übernimmt die auf dem entfernten Rechner eingestellte User-ID und Group-ID der jeweiligen Datei, falls die selben Benutzer auch lokal existieren sollten.
Mit dieser Option agiert shfs ganz analog zu NFS.
Sollten Benutzer- und Gruppen-ID auf dem entfernten Rechner anders als lokal lauten, so kann man die Werte auch explizit angeben:
>> shfsmount user@rechner1 /mnt/rechner1 -o userid=meinname,gid=usersDie Dateirechte werden dann lokal entsprechend gesetzt:
>> ls -l /mnt/rechner1 insgesamt 669 -rw------- 1 meinname users 14296 21. Apr 11:14 #160404# -rw-r--r-- 1 meinname users 11372 12. Jul 14:46 all.ps -rw-r--r-- 1 meinname users 10017 15. Mär 2004 altarelli.eps [...]
Um das Verzeichnis wieder auszuhängen, kann entweder der Befehl shfsumount benutzt werden, oder (wie sonst auch) der umount-Befehl:
>> umount /mnt/rechner1
weitere Möglichkeiten
Andere wichtige Optionen sind --port=PORT, falls die Gegenseite für SSH einen von 22 abweichenden Port benutzt und --persistent um unterbrochene Verbindungen automatisch wieder aufbauen zu lassen.
Es ist sogar möglich, shfs mit dem üblichen Mount-Befehl zu benutzen, d.h. auch der Aufruf:
>> mount -t shfs user@host /mntwird verstanden. Somit kann man SHFS auch zusammen mit Automountern benutzen, oder die Verbindung durch einen entsprechenden Eintrag in der /etc/fstab aufbauen.
Links
Homepage: http://shfs.sourceforge.net/
Download-Seite
Sourceforge-Projektseite: http://sourceforge.net/projects/shfs/
Anmerkungen zu diesem Artikel
Eigene Anmerkung eintragen