SSHFS: montare una risorsa remota sfruttando FUSE ed SSH: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m (→‎Creazione del punto di mount: link al glossario "owner")
(aggiunta una Faq)
Riga 1: Riga 1:
=Introduzione=
=Introduzione=
Quando ci si deve connettere molto spesso ad un server (o a molti server) tramite ssh, pu� essere tedioso dover inserire ogni volta la password...
Spesso pu� essere necessario lavorare direttamente su un filesystem remoto (si pensi, ad esempio, alla webroot di un sito, alla home del proprio portatile, ...).


Un modo sicuro per ''aggirare'' questo problema � basato sull'autenticazione tramite una coppia di chiavi (privata e pubblica).
sshfs permette di superare questo problema in un modo semplice e pulito: montando una directory tramite il protocollo ssh.


=Come funziona=
=Installazione=
Il pacchetto sshfs � gi� presente in Debian, quindi l'installazione si riduce ad un semplice
<pre>
# apt-get install sshfs
</pre>


=Configurazione=
=Configurazione=
==Generazione delle chiavi==
==Creazione del punto di mount==
Per poter gestire questo processo di autenticazione � necessario generare una coppia di chiavi (pubblica e privata). Il comando � semplice:
Prima di tutto � necessario creare un punto di mount in cui montare la risorsa di rete (ovviamente ognuno � liberissimo di utilizzare la directory che vuole):
<pre>
<pre>
$ ssh-keygen -t dsa -b 1024
# mkdir /mnt/sshdir
</pre>
� necessario, inoltre, impostare l'utente che utilizzer� questa directory come ''owner'':
<pre>
# chown username /mnt/sshdir
</pre>
</pre>
dove '''-b''' rappresenta la lunghezza della chiave e '''-t''' viene usato per indicare il tipo di chiave. I possibili valori sono:
; rsa1 : per la versione 1 del protocollo (altamente sconsigliata)
; rsa o dsa : per al versione 2 del protocollo.


Durante la generazione delle chiavi ci viene chiesto dove salvarle (normalmente � ~/.ssh/id_dsa).. il valore di default va bene!
==Permessi utenti==
� possibile permettere l'utilizzo di sshfs anche agli utenti normali, seguendo i seguenti passaggi:
<pre>
# chgrp fuse /usr/bin/fusermount
# adduser nomeutente fuse
</pre>
in questo modo permettiamo l'utilizzo del comando ''fusermount'' agli utenti appartenenti al gruppo ''fuse'', e aggiungiamo l'utente che utilizzer� sshfs al gruppo fuse.


==Copia della chiave pubblica==
Per rendere effettiva l'aggiunta al gruppo � necessario effettuare un logout-login.
La chiave privata, come illustrato nel funzionamento, viene utilizzato dal computer che richiede la connessione (client), mentre quella pubblica deve essere salvata sul computer al quale connettersi (server).


Prendiamo, ad esempio, la seguente chiave pubblica (contenuta nel file ''~/.ssh/id_dsa.pub'' presente sul client):
=Utilizzo e Test=
L'utilizzo � semplice:
<pre>
<pre>
ssh-dss AAAAB3NzaC1kc3MAAACBAPe/PbwWkXR7qI8hcbxLRUS0/fIul0eUiSvu/hnXZXZDIZjVi1VlIbipff6n7Z6vF0hJRg6l
# sshfs user@host:/dir/to/mount /mnt/sshdir
[cut]
gjLLTka0/QF8SP4JYFKs0Iasdju6y1slmx9IdzQt+hvMqF2+PPchCWcyBP3S5Zje4T6Az1MgrvuwCXIW6oUZXCA== user@comp
</pre>
</pre>
dove
; user : l'utente della macchine remota (se omesso verr utilizzato l'username dell'utente che lancia il comando (root, in questo caso)
; host : l'indirizzo ip o l'url a cui la macchina remota risponde
; /dir/to/mount : il percorso assoluto della directory da montare... ( possibile anche utilizzare un percordo relativo a partire dalla directory home dell'utente: ''./path/to/dir'')
; /mnt/sshdir : rappresenta il punto di mount


Copiamo il contenuto nel file ''~/.ssh/authorized_keys2`` presente sul server, nella home relativa all'utente usato su quella macchina e salviamo il file.
per controllare la riuscita del comando, si pu� analizzare l'output del comando <pre>
$ mount
</pre>


==Test di funzionamento==
=Faq ed Errori Frequenti=
Se tutto stato eseguito correttamente, sar� possibile connettersi al server tramite un semplice:
=fusermount: failed to open /dev/fuse: No such file or directory=
<pre>
L'errore dovuto alla mancanza del modulo del kernel relativo a ''fusefs''. � necessario compilarlo come modulo o staticamente (nei kernel pacchettizzati Debian � presente, ed � caricabile con un <pre>
$ ssh utente@server
# modprobe fuse
</pre>
</pre>
inserendo poi la propria passphrase.
==Approfondimenti==
* [http://www.debian.org/doc/manuals/reference/ch-tune.it.html#s-ssh Debian.org]