Obsah

SSHFS - připojení vzdáleného adresáře službou SSH

Jde o FUSE1) modul, který připojuje vzdálený adresář službou SSH, pomocí SFTP protokolu. Souborové operace jsou převáděny na SFTP příkazy spouštěné na serverové straně. Komunikace je pro aplikace na uživatelské straně transparentní - tj. připojený adresářový strom a jeho soubory je možno používat téměř shodně jako lokální soubory

Protokol SFTP a tím pádem i SSHFS, které ho používá, má problémy s hardlinky. Pokud je chcete využívat, tak doporučujeme použít NFS, rsync nebo SCP.
Uvedený postup je určen uživatelům OS Linux, případně jiných UNIXových OS (s mírnými změnami). Další platformy budou postupně testovány.
Pokud nevěříte SSH nebo chcete dodatečné zabezpečení, můžete použít ENCFS



Potřebný SW

Možnosti ověření uživatele

Zde je situace shodná se službou SSH, je možno postupovat podle stejného návodu.

DU4 Ostrava ssh.du4.cesnet.cz
DU5 Jihlava ssh.du5.cesnet.cz

Pro ověření serveru slouží DSA, RSA nebo ECDSA klíče. Ty jsou pro všechny servery v daném datacentru stejné.

Ostravské úložiště (du4):

ECDSA, SHA256 (du4) 9YvWE2h459dMcLWcLcD1DsrxTjqqMLD16eiSYXBVX9k 
ED25519, SHA256 (du4) L0AFWpSsuq+SFl2QBip4aFJEuG3JEnUxczomfEywYvc

Jihlavské úložiště (du5):

ECDSA, SHA256 (du5) YB7YnmuMktwsFxVe5qdzy2bLU9y+0yowEcpZp82P4nk

V případě, že libovolný klíč nesouhlasí, přerušte připojování na server a kontaktujte nás prosím na: support(zavináč)cesnet.cz

Postup pro připojení

Zřídíme bod pro připojení - prázdný adresář (mountpoint):

$ mkdir /storage

A do něj připojíme vzdálený adresář z datového úložiště:

$ sshfs -o idmap=user username@server:/home/username/VO_storage-cache_tape/ /storage
$ ls -l /storage
total 12540
-rw-r--r-- 1 username users 10485760 Jun 22 14:16 MB10.dat
-rw-r--r-- 1 username users  8388608 May  3 12:51 MB8.dat
drwxr-xr-x 2 username users       10 Jun 13 15:34 backup
$ 

Při prvním připojení bude vypsán otisk RSA klíče serveru a sshfs se dotáže, zda má ve spojení pokračovat (při dalších spojeních je už klíč uložen a dotaz se neopakuje, otisk klíče je možné ověřit na stránce s klíči a fingerprinty)

Podle použitého druhu ověření uživatele, může příkaz sshfs vyžadovat heslo k účtu datového úložiště nebo heslo k dešifrování SSH klíče (passphrase). Při použití systému Kerberos je potřeba před spuštěním sshfs získat lístek (viz možnosti ověření uživatele).

Pokud chcete umožnit práci s SSHFS (připojování a odpojování oddílu) i uživatelům, jež nemají oprávnění roota, tak je musíte přídat do skupiny fuse pomocí příkazu:
gpasswd -a username fuse
Pro automatické připojování oddílu po startu Linuxu přidejte následující řádku do /etc/fstab;
sshfs#username@server:/home/username/VO_storage-cache_tape/ /storage fuse defaults,idmap=user 0 0

Nezapomeňte, že pro automatické připojování musíte použít SSH klíče, tzn. veřejný klíč musí být obsažen v souboru /home/username/.ssh/authorized_keys.

Postup pro odpojení

$ fusermount -u /storage
$ ls -l /storage
total 0
$



Pokud provozujute SSHFS na operačním systému Mac OS X, tak můžete narazit na problémý se správcem souborů. Vyzkoušený (funkční) je program Disk Order, verze 3.21.

Poznámka k programu Midnight Commander

Midnight Commander (MC) obsahuje modul pro „File transfer over shell filesystem“ (FISH), jde o technologii, která nepoužívá SFTP protokol, ale vyžaduje možnost zasílat serveru obecné příkazy přes SSH terminálový přístup.
Datové úložiště Cesnetu povoluje z bezpečnostních důvodů přes SSH zadávat pouze omezenou sadu příkazů a FISH technologii tedy zatím není možné použít - doporučujeme jako univerzálnější náhradu SSHFS, jde navíc o zpřístupnění souborů nejen pro MC, ale i pro jiné aplikace.

Automatické připojení úložiště pomocí AutoFS

Často můžeme chtít, aby se vzdálené úložište připojilo automaticky, bez nutnosti zadávat příkaz tzn. transparentně. Pro tento účel můžeme využít nástroj AutoFS, který navíc provede reconnect v případě výpadku připojení.

Pro plně automatické připojení je nutné použít SSH klíče, které nejsou chráněny heslem. To může být nebezpečné, pokud Vám někdo zařízení odcizí.

Potřebný SW

Budeme zde předpokládat, že jste prošli kroky spojené s nastavením SSHFS výše a ruční připojení úložiště Vám funguje.

Hlavní konfigurační souboru AutoFS je /etc/auto.master. Do něho umístíme řádku

/storage /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost

Tím říkáme, že pokud někdo přistoupí do adresáře /storage, tak se má provést automatické připojení podle definice v souboru /etc/auto.sshfs. Timeout specifikuje, za jak dlouho při nečinnosti dojde k automatickému odpojení. UID a GID patří uživateli, který může používat FUSE.

Do souboru /etc/auto.sshfs umístíme následující.

server1 -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#username@server\:

Kde server1 představuje podadresář adresáře /storage tzn. po připojení bude vzdálené úložiště namountováno do /storage/server1. Nezapomeňte změnit username a adresu serveru (username@server).

Tím máme AutoFS nakonfigurovaný pro práci s SSHFS.

Pokud provozujute SSHFS na operačním systému Mac OS X, tak můžete narazit na problémý se správcem souborů. Vyzkoušený (funkční) je program Disk Order, verze 3.21.
1)
Filesystem in Userspace