Bestandssysteem via SSH aankoppelen

Van MandrivaClub.NL Wiki

Ga naar: navigatie, zoek

Als je via SSH toegang hebt tot een machine, kun je directories op die machine koppelen aan het bestandssysteem van de lokale machine. Voordeel hiervan, is dat je bestanden op die machine kunt benaderen, alsof ze op de locale machine staan.

Hiervoor is het nodig dat het pakket sshfs is geinstalleerd. Dit is simpelweg met urpmi te installeren

# urpmi sshfs

Daarnaast is het belangrijk dat de kernelmodule 'fuse' geladen is. Als dit geinstalleerd is, wordt deze meestal standaard al geladen. Zo niet, kun je deze laden met het commando:

# modprobe fuse


Inhoud

[bewerk] Basis gebruik

Vervolgens kun je het bestandssysteem op de machine op afstand koppelen met het commando:

$ sshfs gebruiker@servernaam: /media/mountpoint

Hiermee wordt de home-directory van 'gebruiker' op 'servernaam' gekoppeld aan '/media/mountpoint'. Om een andere directory te koppelen, gebruik je:

$ sshfs gebruiker@servernaam:/directory/op/de/server /media/mountpoint

Hiermee wordt de directory /directory/op/de/server door gebruiker 'gebruiker' op 'servernaam' gekoppeld aan '/media/mountpoint' (mits deze gebruiker daar voldoende rechten voor heeft uiteraard).


[bewerk] Automatisch aankoppelen

Als je vaak de zelfde directories op de machine op afstand wilt benaderen, kun je er voor kiezen om het koppelen automatisch te laten regelen door de informatie in het bestand /etc/fstab te plaatsen.

Dit gaat bijvoorbeeld door de volgende regel daaraan toe te voegen:

sshfs#gebruiker@servernaam:/directory/op/de/server /media/mountpoint fuse defaults 0 0

In plaats van defaults kun je zoals bij ieder ander bestandssysteem opties meegeven, zoals 'users' om ervoor te zorgen dat 'normale' gebruikers deze koppeling kunnen maken, of 'noauto' om ervoor te zorgen dat het de koppeling niet automatisch wordt gemaakt tijdens het opstarten van de machine.


[bewerk] Koppelen zonder wachtwoord

Standaard vraagt sshfs tijdens het koppelen om het wachtwoord van de gebruiker. Gezien dit erg lastig is bij automatisch mounten, kunnen we hier iets aan doen.

We kunnen ervoor zorgen dat de gebruikers die het systeem moeten kunnen koppelen, zichzelf op de machine op afstand kunnen identificeren als zijnde de gebruiker aldaar, met behulp van rsa-keys.

Om een key aan te maken voor een gebruiker tik je (als die gebruiker):

$ ssh-keygen -t rsa

Vervolgens kunnen wij de public-key van deze gebruiker in de machine op afstand importeren, met het commando:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub gebruiker@servernaam

Om te testen of dit werkt, kun je nu een ssh-connectie proberen te openen met het commando:

$ ssh gebruiker@servernaam

Als het goed is, wordt nu niet gevraagd om het wachtwoord van 'gebruiker', omdat je jezelf identificeerd met behulp van de zojuist geimporteerde RSA-key. Nu zal ook sshfs niet meer om een wachtwoord vragen.

Deze stappen moeten voor alle gebruikers die deze koppeling moeten kunnen maken worden herhaald.


[bewerk] Ontkoppelen

Om het ssh-bestandssysteem te ontkoppelen, kunnen wij het volgende commando gebruiken:

$ fusermount -u /media/mountpoint

(wellicht werkt een simpel 'umount /media/mountpoint' ook, dit heb ik nog niet geprobeerd)


[bewerk] SSHFS voor andere besturingssystemen

Wellicht heb je een Linux server, maar wil je ook dat Windows en/of Mac gebruikers bij de bestanden op die server kunnen komen. Natuurlijk kun je dan kiezen alsnog Samba te installeren, maar het kan ook anders!

Voor Windows bestaat het programma SftpDrive, dit doet ongeveer het zelfde als sshfs onder Linux. Nadeel is wel dat dit een commercieel programma is.

Voor MacOS X bestaat ook sshfs, wat op de zefde manier zou moeten werken als hierboven beschreven. Nadeel is echter, dat dit minimaal OSX versie 10.4 nodig heeft... en mijn Macje heeft 10.3, dus ik kan dit helaas niet testen.


[bewerk] Bronnen

SSH filesystem website

Forumtopic op Ubuntuforums

Persoonlijke instellingen
MandrivaClub.NL