Home > Server, Ubuntu > sshfs ssh Filesystem in Ubuntu

sshfs ssh Filesystem in Ubuntu

sshfs è  un filesystem di tipo client basato sul ssh File Tranfer Protocol e su Fuse ( il miglior filesystem usersspaceper linux-  Filesystem in USErspace ). Consente ad un client di accedere ad una macchina remota in cui gira ssh server montando e interagendo con directory e files senza ovviamente azioni da compiere a livello di server. In pratica semplificando consente di montare in modo temporaneo o permanete un filesystem sftp. Irrinunciabile soprattutto  se mancano servizi di condivisione di file quali samba, nfs ..

Per avere disponible il comando in Ubuntu 12.04 installare il pacchetto sshfs

sudo apt-get install sshfs

Montare un cartella remota con ssh

installato sshfs  è possibile condividere i files del computer remoto senza bisogno di servizi quali samba, nfs o fto da abilitare nel server. Per  rendere disponibili files effettuare il mount con

sudo sshfs [<user>@]<host-remoto>:</cartella/da/montare>  <cartella_locale>
es 
sudo sshfs  maurizio@182.35.193.165:/media/www.2  /media/www-2

Il mounting così realizzato rende le risorse remote accessibili solo come root per consentire agli altri utenti di accedere a queste risorse è necessario moficare il file /etc/fuse.conf

sudo nano /etc/fuse.conf

attivando l’opzione

user_allow_other

e quindi effettuando il mount con l’opzione allow_other

sudo sshfs  -o allow_other maurizio@182.35.193.165:/media/www.2  /media/www-2

per montare la home prevedibilmente

sudo sshfs -o allow_other maurizio@182.35.193.165:  /home/maurizio/remote

Umount sshfs filesystem

per effettuare il l’ umount del filesystem  si procede nel modo classico

umount  <cartella local>

sudo umount /media/www-2

oppure

sudo fusermount -u /media/www-2

Mounting permanente di una directory remota

Per rendere il mount sshfs permante editare il file fstab è inserire una linea tipo

sshfs#root@182.35.193.165:/ /mnt/ssh fuse defaults 0 0

salvare il file quindi per aggiornare lo stato del  fstab file per il kernel.

mount -a

per gestire la connessione a file system remoti utilizzando ssh è possibile utilizzare anche un comodo applicativo a interfaccia grafica gigolo

sshfs + samba

Se si desidera realizzare un mount ad una macchina window da un pc linux senza il procotollo samba si può sempre valutare la possiiblità di realizzare una ponte utilizzando una seconda macchina linux con samba e quindi effettuare un mount sshfs alla macchina ponte.

In questo caso  la macchina linux (192.168.1.4) ponte potrebbe effettuare un mount delle risorse della macchina window ( 192.168.1.86) che devono essere condivise con un comando del tipo

mkdir /mnt/biblio86
sudo mount -t cifs -o username=maurizio -p //192.168.1.86/biblio /mnt/biblio86

la macchina linux priva di samba (192.168.1.164) potrebbe a questo punto effettuare un mount sshfs della macchina linux ponte ( 192.168.1.4)

mkdir /mnt/biblio486
sudo sshfs -o allow_other maurizio@192.168.1.4:/mnt/biblio86  /mnt/biblio486

Risoluzione di problemi

Se compare un messaggio di errore del tipo

fuse: bad mount point `/mnt/u138': Transport endpoint is not connected

Smontare la directory in questo esempio (  /mnt/u138 )

sudo umount /mnt/u138c

o

sudo fusermount -u /mnt/u138c

qualora si riscontrino problemi e necessario preventivametne  bloccare i processi sshfs prima di smontare il percorso. Per  dettagli fare riferimento al post fuse: bad mount point : Transport endpoint is not connected

In caso la connessione subisca una caduta temporanea e possibile ovviare usando l’opzione reconnect

Se compare il messaggio

fusermount: user has no write access to mountpoint

lo user che sta effettuando il mount con sshfs non ha i permessi adeguati in genere conviene usare l’utente super user

Risorse:

 

Categorie:Server, Ubuntu Tag:, , , ,
  1. dicembre 10, 2013 alle 3:57 pm

    non ho capito se sshfs opera da solo o si appoggia a openssh.
    che differenza c’è tra i due?

    • dicembre 10, 2013 alle 5:00 pm

      sshfs si appoggia su ssh (openssh) per la connessione/trasmissione e su fuse. FUSE è un sistema decisamente sofisticato che consente di scrivere file system virtuali. I file system virtuali non scrivono direttamente i dati su disco ma fanno da ponte verso il filesystem sottostante. Per dettagli vedi ad esempio http://it.wikipedia.org/wiki/FUSE

      • dicembre 10, 2013 alle 9:18 pm

        grazie, studio ancora un po’ e poi provo a collegare due PC Debian.
        Una domanda, posso collegare direttamente i due pc con cavo ethernet senza mettere in mezzo il router?

      • dicembre 10, 2013 alle 10:26 pm

        Assolutamente si. Semplificando. Qualsiasi computers raggiungibile via ssh può condividere il suo filesystem grazie a sshfs, e questo sia temporaneamente che in modo permanente come indicato nel post.
        Praticamente se sftp (https://mauriziosiagri.wordpress.com/2011/12/04/winscp-in-linux/) consente di accedere al filesystem di un computer remoto. sshfs consente il mount del filesystem remoto.

  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: