sshfs - podmontowywanie katalogów z innych komputerów

A. Co to?

Sshfs umożliwia nam podmontowanie zdalnego systemu plików pod własny, lokalny. Do połączenia wykorzystywane jest ssh.

B. Po co?

Wygoda :) Montujemy raz, a potem korzystamy nawet nie zastanawiając się, czy działamy na systemie lokalnym czy zdalnym.

Bezpieczeństwo. Transmisja odbywa się via ssh, a nie np. nieszyfrowanym ftp.

C. Różnice w porównaniu do sftp

Jedna zasadnicza - działamy bezpośrednio na zdalnym systemie plików.

Łatwo przerabiamy domowy routerek na serwer plików.

Nie musimy, więc ściągać np. filmu do siebie, lecz odtwarzamy go w locie. Wystarczy nam magazynowanie mp3 w jednym miejscu, czy też bardziej ambitnie - mozemy trzymać na zdalnym serwerze konfiguracje programów

D. Wymagania

W PLD, będzie to paczka sshfs-fuse, w Archu extra/sshfs, W Ubuntu i pochodnych sshfs

Oczywiście wraz z zależnościami.

E. How-to

Instalujemy potrzebne paczki

Np. w Ubuntu czy Debianie

1
sudo apt-get install sshfs

Ładujemy moduł fuse

1
modprobe fuse

Możemy go oczywiście dodać, do odpowiedniego pliku konfiguracyjnego, żeby był ładowany automatycznie przy starcie (PLD: /etc/modules, Arch:/etc/rc.conf, Ubuntu czary mary powinno dokonać z automatu)

Montowanie

1
sshfs uzytkownik@serwer:/home/uzytkownik/jakis_katalog/ /home/users/moj_uzytkownik/katalog_w_ktorym_zamontujemy/

W jednej linii oczywiście. Voila!

Odmontowywanie

Musimy być w grupie fuse

1
usermod -A fuse moj_uzytkownik
1
fusermount -u /home/users/moj_uzytkownik/katalog_w_ktorym_zamontujemy/

F. Automatyczne montowanie przy starcie systemu

moduł fuse musi być załadowany (pkt E1)

generujemy klucze do automatycznego uwierzytelniania

Jak to zrobić? http://jakilinux.org/uncategorized/sztuczki-z-ssh/ Edytujemy /etc/fstab dopisując linię:

sshfs#sshfs uzytkownik@serwer:/home/uzytkownik/jakis_katalog/ /home/users/moj_uzytkownik/katalog_w_ktorym_zamontujemy/ uid=1001,gid=100,umask=0,allow_other 0 0

gdzie uid oczywiście równy uid’owi naszego użytkownika, lub gid równy grupie która ma miec dostęp do zamontowanych zasobów.

G. Problemy

/dev/fuse powinno mieć następujące uprawnienia:

1
2
ls -l /dev/fuse
crw-rw-rw- 1 root fuse 10, 229 2008-02-21 10:25 /dev/fuse

Jednak udev woli nadawać im uprawnienia root:root

Jak temu zaradzić?

Nauczyć udeva ;p (jako root lub z sudo na początku)

1
echo \"KERNEL==\\\"fuse\\\", GROUP=\\\"fuse\\\"\" >> /etc/udev/rules.d/91-permissions.rules
Załadować komentarze?