Montare un disco remoto con FUSE e SSHFS

Dovendo lavorare spesso su server remoti nasce la necessità di accedere velocemente ai file per poterli modificare al volo. Normalmente una cosa del genere la si può benissimo fare usando VI da una qualsiasi shell remota aperta con SSH, ogni tanto però c’è bisogno di modificare il file in questione con un applicativo installato sul proprio pc.

Se il file è uno nessun problema, ma se sono una ventina?

La soluzione la da il modulo FUSE (File System on User Space) che permette di montare un server SSH esterno come se fosse una partizione di hd.

L’installazione di fuse sotto Fedora Core 5 è una bazzecola, basta infatti puntare yum sul repository extras ufficiale ed installare il pacchetto.

root@starscream# yum –enable-repo=extras install fuse-sshfs

a questo punto per montare una directory remota ci basterà da shell invocare il comando

root@starscream# mount.fuse sshfs#pippo@SERVER:/path/remoto/ /mnt/server/ -o rw

cioè andremo a montare la directory remota /path/remoto/ del server SERVER con i permessi dell’utente remoto pippo all’interno della nostra directory /mnt/server/, inoltre sulla directory dove non specificato dai permessi remoti verrà garantita la possibilità di leggere e scrivere i file.

E se volessimo montare automaticamente la cartella senza doverci ricordare ogni volta il nome o l’IP del server? In questo caso possiamo aggiungere all’interno del file /etc/fstab la seguente riga

root@starscream# echo “sshfs#pippo@SERVER:/path/remoto /mnt/server fuse defaults,noauto,rw,allow_others 0 0″ >> /etc/fstab

Dove l’opzione noauto impedisce che in fase di boot il sistema cerchi di montare automaticamente la directory remota in questione (se state usando un portatile e siete in giro significa non perdere tempo per il boot e ricevere degli sgradevoli messaggi di errore), mentre allow_others permette a tutti gli utenti del sistema di usare il filesystem appena montato (ricordatevi sempre che FUSE è scritto per funzionare in userspace e quindi di default solo l’utente che monta il filesystem può accedervi).

a questo punto ogni volta che da shell proveremo a fare un automount della directory /mnt/server riceveremo la richiesta di password per la login.

root@starscream# mount /mnt/server
pippo@SERVER’s password:

semplifichiamoci ulteriormente la vita ed eliminiamo anche questo prompt, scomodo se volete usare sshfs tra due server presenti nella stessa rete. Per farlo ci basterà dare un occhio al man di ssh,oppure a questo comodissimo e velocissimo tutorial online, e controllare come si abilita la gestione delle chiavi pubbliche/private.

ciauz

  • Figherrimo! ;) Soprattutto se si vogliono evitare mastodontici IDE che fanno la stessa cosa.

  • Pingback: Il tuttlog di Tassoman()

  • Bel consiglio ;) mi sa che molto presto adotterò anche io questa soluzione.

    Ciao

  • Forse non tutti sanno che…
    con KDE si può accedere via grafica ad un qualsiasi server ssh con il protocollo fish.
    Basta digitare nella casella dell’indirizzo in konqueror:
    fish://utente:password@server_remoto/path/remoto/

    Se non si inseriscono utente e password konqueror li chiede al momento dell’accesso.

  • stessa cosa fai con gnome usando ssh:/// come protocollo, il problema è che applicazioni non possono accedere a tali directory..

    ad esempio prova a fare il TAR di una directory (virtuale) di konqueror o nautilus da shell e dimmi se ti riesce ;)

  • L’anno scorso avevo provato la versione di fuse dell’epoca. Sembrava tutto bene, ma dopo qualche minuto un bel kernel panic mi ha fatto desistere. Che sia il caso di riprovare? ;-)

  • nautilus + sshfs = crash

    ho provato ad aprire con nautilus un filesystem montato con ssh-fuse.
    Nautilus si chiude all’improvviso.
    D’altra parte, scrivendo su Nautilus ssh://user@host come e’ gia` stato fatto notare, non si possono fare operazioni sui file (ho provato ad aprire archivi compressi e non va)

%d bloggers like this: