Difference between revisions of "Sshfs (Italiano)"

From ArchWiki
Jump to: navigation, search
m (fstab: corrected template Nota)
(wikify some external links, use https for archlinux.org)
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Networking (Italiano)]]
+
[[Category:Secure Shell (Italiano)]]
[[Category:HOWTOs (Italiano)]]
+
[[en:Sshfs]]
{{i18n|Sshfs}}
+
Sshfs può essere usato per effettuare il mount di file system remoti - accessibili tramite [[SSH (Italiano)|SSH]] - in una cartella locale, permettendo quindi di poter effettuare qualsiasi operazione sui file con qualsiasi strumento(copiare, rinominare, modificare con [[Vim (Italiano)|vim]] eccetera.). L'uso di sshfs invece di shfs è consigliato comunemente, in quanto shfs non ha avuto nuove versioni dal 2004.
{{translateme}}
+
{{Nota|Questo articolo è in fase di traduzione, consultare la guida inglese.}}
+
 
+
Sshfs può essere usato per effettuare il mount di file system remoti - accessibili tramite [[SSH (Italiano)|SSH]] - in una cartella locale, permettendo quindi di poter effettuare qualsiasi operazione sui file con qualsiasi strumento(copiare, rinominare, modificare con [[Vim (Italiano)|vim]] eccetera.). l'Uso di sshfs invece di shfs è consigliato comunemente, in quanto shfs non ha avuto nuove versioni dal 2004.
+
  
 
== Installazione ==
 
== Installazione ==
Per installare il pacchetto necessario digitare:
+
[[Pacman (Italiano)|Installare]] il pacchetto {{Pkg|sshfs}}. Questo pacchetto ha come sua dipendenza {{Pkg|fuse}} e ne richiederà l'installazione (se non è già stato installato).
# pacman -S sshfs
+
Questo comando dovrebbe installare {{Package Official|fuse}}(se non è gia stato installato) e {{Package Official|sshfs}}, ed eventuali dipendenze.
+
  
 
== Uso ==
 
== Uso ==
Per prima cosa il modulo necessario al corretto funzionamento dovrebbe essere caricato(come utente ''root''):
+
Per prima cosa il modulo necessario al corretto funzionamento dovrebbe essere caricato (come utente ''root''):
  
 
  # modprobe fuse
 
  # modprobe fuse
(Sarà possibile inserire {{Codeline|fuse}} nell'array {{Codeline|MODULES}} all'interno del file {{Filename|/etc/[[rc.conf (Italiano)|rc.conf]]}} per farlo caricare automaticamente all'avvio.)
+
(Sarà possibile inserire {{ic|fuse}} nell'array {{ic|MODULES}} all'interno del file {{ic|/etc/[[rc.conf (Italiano)|rc.conf]]}} per farlo caricare automaticamente all'avvio.)
  
 
=== Effettuare il mount ===
 
=== Effettuare il mount ===
Si dovrà utilizzare il comando {{Codeline|sshfs}}. Per effettuare il mount di una cartella remota:
+
Si dovrà utilizzare il comando {{ic|sshfs}}. Per effettuare il mount di una cartella remota:
 
  ''# sshfs NOMEUTENTE@NOMEMACCHINA_O_INDIRIZZOIP:/PERCORSO PUNTO_DI_MOUNT_LOCALE OPZIONI_SSH''
 
  ''# sshfs NOMEUTENTE@NOMEMACCHINA_O_INDIRIZZOIP:/PERCORSO PUNTO_DI_MOUNT_LOCALE OPZIONI_SSH''
 
Ad esempio:
 
Ad esempio:
Line 25: Line 19:
 
Dove 9876 è il numero della porta.
 
Dove 9876 è il numero della porta.
  
Inoltre, assicurarsi prima di connettersi, di aver impostato i guisti permessi sui file, per le cartelle locali dove si vuole effettuare il mount di una cartella remota. Esempio: non lasciare che l'unico proprietario sia root! Sarà possibile utilizzare il comando di mount anche come utente normale, dovrebbe fuznionare correttamente.
+
Inoltre, assicurarsi prima di connettersi, di aver impostato i giusti permessi sui file, per le cartelle locali dove si vuole effettuare il mount di una cartella remota. Esempio: non lasciare che l'unico proprietario sia root! Sarà possibile utilizzare il comando di mount anche come utente normale, dovrebbe funzionare correttamente.
  
[[SSH (Italiano)|SSH]] richiederà la password, se necessaria. Se non si vuole inserire ogni volta la password, consultare; [http://linuxmafia.com/~karsten/Linux/FAQs/sshrsakey.html Come usare l'autenticazione con una chiave RSA via SSH (in inglese)], oppure [[Using SSH Keys (Italiano)|Usare le chiavi SSH]].
+
[[SSH (Italiano)|SSH]] richiederà la password, se necessaria. Se non si vuole inserire ogni volta la password, consultare; [http://linuxmafia.com/~karsten/Linux/FAQs/sshrsakey.html Come usare l'autenticazione con una chiave RSA via SSH (in inglese)], oppure [[SSH Keys (Italiano)|usare le chiavi SSH]].
  
 
=== Effettuare l'umount ===
 
=== Effettuare l'umount ===
Line 36: Line 30:
  
 
== Tips ==
 
== Tips ==
To quickly mount a remote dir, do some file-management and unmount it, put this in a script:
+
Per effettuare un mount rapido di una cartella remota, effettuare alcune operazioni sui file ed effettuare l'umount successivamente, inserire i seguenti comandi in uno script:
  sshfs USERNAME@HOSTNAME_OR_IP:/PATH LOCAL_MOUNT_POINT SSH_OPTIONS''
+
  sshfs NOMEUTENTE@NOMEMACCHINA_O_INDIRIZZOIP:/PERCORSO PUNTO_DI_MOUNT_LOCALE OPZIONI_SSH
  mc ~ LOCAL_MOUNT_POINT
+
  mc ~ PUNTO_DI_MOUNT_LOCALE
  fusermount -u LOCAL_MOUNT_POINT''
+
  fusermount -u LOCAL_MOUNT_POINT
  
This will mount the remote directory, launch MC, and unmount it when you exit.
+
Questi comandi effettueranno il mount della cartella remota, eseguiranno MC ed infine smonteranno la cartella dopo l'uscita dal file-manager.
  
Thunar has issues with FAM and remote file access. If you experience remote folders not displaying, getting kicked back to the home directory, or other remote file access issues through Thunar, replace fam with {{Package Official|gamin}}. Gamin is derived from fam.
+
Thunar ha un problema con [[FAM (Italiano)|FAM]] e gli accessi a file remoti. Se le cartelle remote non vengono visualizzate, e si viene portati alla cartella {{ic|home}}, oppure si hanno altri problemi di accesso a file remoti, sostituire {{Pkg|fam}} con {{Pkg|gamin}}. Gamin è derivato da FAM. Installare quindi {{Pkg|gamin}} e rimuovere dal caricamento automatico il [[Daemon (Italiano)|demone]] {{ic|fam}}.
  
# pacman -S gamin
+
==Chroot==
# nano /etc/rc.conf  #remove fam in daemons
+
Potrebbe essere necessario abbinare un utente(specifico) ad una cartella. Per effettuare questo, modificare il file {{ic|/etc/ssh/sshd_config}}:
  
== Troubleshooting ==
+
{{hc|/etc/ssh/sshd_config|2=<nowiki>.....
 +
Match User nomeutente
 +
      ChrootDirectory /chroot/%u
 +
      ForceCommand internal-sftp #per limitare l'utente all'uso di sftp
 +
      AllowTcpForwarding no
 +
      X11Forwarding no
 +
.....</nowiki>}}
 +
{{Nota|La cartella di chroot '''deve''' essere posseduta da root, altrimenti non sarà possibile connettersi. Per maggiori informazioni consultare le pagine di manuale relative a {{ic|Match, ChrootDirectrory}} e {{ic|ForceCommand}}.}}
 +
 
 +
== Risoluzione dei problemi ==
 
===Connection reset by peer===
 
===Connection reset by peer===
* If you are trying to access the remote system with a hostname, try using its IP address, as it can be a domain name solving issue. Make sure you edit {{Filename|/etc/hosts}} with the server details.
+
* Se si sta tentando di accedere ad un sistema remoto tramite il nome macchina, provare utilizzando l'indirizzo IP, potrebbe essere un problema di risoluzione dei nomi. Assicurarsi di modificare il file {{ic|/etc/hosts}} aggiungendo l'indirizzo ed il nome del server.
* If you are using non-default key names and are passing it as {{Codeline|-i .ssh/my_key}}, this won't work. You have to use {{Codeline|-o IdentityFile<nowiki>=</nowiki>/home/user/.ssh/my_key}}, with the full path to the key.
+
* Se si stanno utilizzando chiavi con nomi non standard, passare l'opzione con {{ic|-i .ssh/my_key}}, non funziona. Sarà necessario usare {{ic|-o IdentityFile<nowiki>=</nowiki>/home/user/.ssh/my_key}}, specificando il percorso assoluto della chiave.
* Adding the option '{{Codeline|sshfs_debug}}' (as in '{{Codeline|sshfs -o sshfs_debug user@server ...}}') can help in resolving the issue.
+
* Aggiungere l'opzione '{{ic|sshfs_debug}}' (ad esempio '{{ic|sshfs -o sshfs_debug user@server ...}}') può aiutare ad avere maggiori informazioni per risolvere il problema.
* If you're trying to sshfs into a router running DD-WRT or the like, there is a solution [http://www.dd-wrt.com/wiki/index.php/SFTP_with_DD-WRT here].
+
* Se si utilizza sshfs in una rete gestita da un router che esegue [[Wikipedia:DD-WRT|DD-WRT]] o simile, la soluzione può essere trovata [http://www.dd-wrt.com/wiki/index.php/SFTP_with_DD-WRT quì].
* Forum thread: [http://bbs.archlinux.org/viewtopic.php?id=27613 sshfs: Connection reset by peer]
+
* Discussione sul forum internazionale: [https://bbs.archlinux.org/viewtopic.php?id=27613 sshfs: Connection reset by peer]
  
{{Note| When providing more than one option for sshfs, they must be comma separated. Like so: '{{Codeline|sshfs -o sshfs_debug,IdentityFile<nowiki>=</nowiki></path/to/key> user@server ...}}')}}
+
{{Nota| Quando vengono passate diverse opzioni per sshfs, devono essere separate da una virgola. In questo modo: '{{ic|sshfs -o sshfs_debug,IdentityFile<nowiki>=</nowiki></path/to/key> user@server ...}}')}}
 +
 
 +
===Remote host has disconnected===
 +
* Se si riceve questo messaggio direttamente appena si tenta di utilizzare sshfs, provare a controllare il percorso del {{ic|Sybsystem}} elencato nel file {{ic|/etc/ssh/sshd_config}} sulla macchina remota, e controllare che sia corretto.
 +
* Sarà possibile constrollare digitando {{ic|find /  grep XXXX}} dove XXXX è il percorso del subsystem.
  
 
==fstab==
 
==fstab==
An example on how to use sshfs to mount a remote filesystem through {{Filename|/etc/[[Fstab|fstab]]}}
+
Un esempio di come usare sshfs per montare un filesystem remoto tramite {{ic|/etc/[[Fstab (Italiano)|fstab]]}}
  sshfs#USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY /LOCAL/MOUNTPOINT fuse defaults 0 0
+
  sshfs#NOMEUTENTE@NOMEMACCHINA_O_INDIRIZZOIP:/CARTELLA/REMOTA /PUNTO_DI_MOUNT/LOCALE fuse defaults 0 0
  
Take for example a line from my fstab
+
Ecco come potrebbe risultare la voce in fstab
 
  sshfs#llib@192.168.1.200:/home/llib/FAH /media/FAH2 fuse defaults 0 0
 
  sshfs#llib@192.168.1.200:/home/llib/FAH /media/FAH2 fuse defaults 0 0
Although the above will not work automatically unless you are using a ssh key for the user. [[Using SSH Keys]].
+
Comunque questo non funzionerà automaticamente se non si utilizza una chiave ssh per l'utente. [[SSH Keys (Italiano)|SSH Keys]].
  
If you want to use sshfs with multiple users :
+
Se si vuole usare sshfs per diversi utenti:
 
  sshfs#user@domain.org:/home/user  /media/user  fuse    defaults,allow_other    0  0
 
  sshfs#user@domain.org:/home/user  /media/user  fuse    defaults,allow_other    0  0
  
{{Nota| With the above method, umount complains that the filesystem is not in {{Filename|fstab}}. To get around this, remove the '{{Codeline|sshfs#}}' prefix, change the filesystem from '{{Codeline|fuse}}' to '{{Codeline|fuse.sshfs}}', and create a script '{{Filename|sbin/mount.fuse.sshfs}}':}}
+
{{Nota| Con il precedente metodo, l'umount non verrà effettuato perché il filesystem non si trova in {{ic|fstab}}. Per evitare questo errore, rimuovere il prefisso '{{ic|sshfs#}}', cambiare il filesystem da '{{ic|fuse}}' a '{{ic|fuse.sshfs}}', quindi creare uno script chiamato '{{ic|sbin/mount.fuse.sshfs}}':
  
{{File|name=sbin/mount.fuse.sshfs|content=#!/bin/bash
+
{{hc|/sbin/mount.fuse.sshfs|2=<nowiki>#!/bin/bash
 
DEVICE="$1"
 
DEVICE="$1"
 
MOUNTPOINT="$2"
 
MOUNTPOINT="$2"
Line 79: Line 86:
 
OPTIONS="${OPTIONS/,user/}"
 
OPTIONS="${OPTIONS/,user/}"
  
# workaround to conflicting 'user' options
+
# workaround per evitare il conflitto dell'opzione 'user'
# in fstab, specify 'login=joe' instead of 'user=joe'
+
# in fstab, specificare 'login=joe' invece di 'user=joe'
 
OPTIONS="${OPTIONS/,login=/,user=}"
 
OPTIONS="${OPTIONS/,login=/,user=}"
  
exec /usr/bin/sshfs "$DEVICE" "$MOUNTPOINT" -o "$OPTIONS"}}
+
exec /usr/bin/sshfs "$DEVICE" "$MOUNTPOINT" -o "$OPTIONS"</nowiki>}}}}
 
+
If you get "connection reset by peer" from using the fstab method, it's possible your PC is not yet connected to the internet at that point of the boot process. The solution for me was (as I'm using XFCE) to add a startup command to mount it using sshfs. At that point the internet connection should already be ready.
+
  
==Options==
+
Se si ottiene l'errore "connection reset by peer" usando il metodo di fstab, è probabile che il pc non sia connesso ad internet durante quella fase dell'avvio.
 +
La soluzione consiste nell'aggiungere alle applicazioni di avvio del proprio DE/WM il comando di mount tramite sshfs. A questo punto dell'avvio la connessione dovrebbe essere stata stabilita.
  
sshfs can automatically convert your local and remote user id's, if you add the idmap option:
+
==Opzioni==
 +
sshfs può convertire automaticamente l'id dell'utente locale e remoto, se si aggiunge l'opzione {{ic|idmap}}:
  
 
  # sshfs -o idmap=user sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876
 
  # sshfs -o idmap=user sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876
  
If you have a different login on the remote system, it can still work if you provide the ssh standard option User:
+
Se per il server remoto si utilizza un nome utente diverso da quello in uso, può funzionare se viene utilizzata l'opzione ssh {{ic|User}}:
  
 
  # sshfs -o idmap=user,User=sessy2 sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876
 
  # sshfs -o idmap=user,User=sessy2 sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876
  
(I've used first form, second is based on docs, so YMMV, but it should at least be close)
+
(La prima forma è stata testata, la seconda è basata sulla documentazione, quindi potrebbe risultare leggermente differente.)
  
==See also==
+
==Link correlati==
* [[SSH]]
+
* [[SSH (Italiano)|SSH]]
* [http://wiki.lapipaplena.org/index.php/How_to_mount_SFTP_accesses How to mount chrooted SSH filesystem], with special care with owners and permissions questions.
+
* [http://wiki.lapipaplena.org/index.php/How_to_mount_SFTP_accesses How to: effettuare il mount di filesystem in chroot tramite SSH(in inglese)], con maggiori approfondimenti riguardo ai proprietari ed alle opzioni dei permessi.

Revision as of 14:43, 3 December 2012

Sshfs può essere usato per effettuare il mount di file system remoti - accessibili tramite SSH - in una cartella locale, permettendo quindi di poter effettuare qualsiasi operazione sui file con qualsiasi strumento(copiare, rinominare, modificare con vim eccetera.). L'uso di sshfs invece di shfs è consigliato comunemente, in quanto shfs non ha avuto nuove versioni dal 2004.

Installazione

Installare il pacchetto sshfs. Questo pacchetto ha come sua dipendenza fuse e ne richiederà l'installazione (se non è già stato installato).

Uso

Per prima cosa il modulo necessario al corretto funzionamento dovrebbe essere caricato (come utente root):

# modprobe fuse

(Sarà possibile inserire fuse nell'array MODULES all'interno del file /etc/rc.conf per farlo caricare automaticamente all'avvio.)

Effettuare il mount

Si dovrà utilizzare il comando sshfs. Per effettuare il mount di una cartella remota:

# sshfs NOMEUTENTE@NOMEMACCHINA_O_INDIRIZZOIP:/PERCORSO PUNTO_DI_MOUNT_LOCALE OPZIONI_SSH

Ad esempio:

# sshfs sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876

Dove 9876 è il numero della porta.

Inoltre, assicurarsi prima di connettersi, di aver impostato i giusti permessi sui file, per le cartelle locali dove si vuole effettuare il mount di una cartella remota. Esempio: non lasciare che l'unico proprietario sia root! Sarà possibile utilizzare il comando di mount anche come utente normale, dovrebbe funzionare correttamente.

SSH richiederà la password, se necessaria. Se non si vuole inserire ogni volta la password, consultare; Come usare l'autenticazione con una chiave RSA via SSH (in inglese), oppure usare le chiavi SSH.

Effettuare l'umount

Per effettuare l'umount delle cartelle remote:

# fusermount -u PUNTO_DI_MOUNT_LOCALE

Esempio:

# fusermount -u /mnt/sessy

Tips

Per effettuare un mount rapido di una cartella remota, effettuare alcune operazioni sui file ed effettuare l'umount successivamente, inserire i seguenti comandi in uno script:

sshfs NOMEUTENTE@NOMEMACCHINA_O_INDIRIZZOIP:/PERCORSO PUNTO_DI_MOUNT_LOCALE OPZIONI_SSH
mc ~ PUNTO_DI_MOUNT_LOCALE
fusermount -u LOCAL_MOUNT_POINT

Questi comandi effettueranno il mount della cartella remota, eseguiranno MC ed infine smonteranno la cartella dopo l'uscita dal file-manager.

Thunar ha un problema con FAM e gli accessi a file remoti. Se le cartelle remote non vengono visualizzate, e si viene portati alla cartella home, oppure si hanno altri problemi di accesso a file remoti, sostituire fam con gamin. Gamin è derivato da FAM. Installare quindi gamin e rimuovere dal caricamento automatico il demone fam.

Chroot

Potrebbe essere necessario abbinare un utente(specifico) ad una cartella. Per effettuare questo, modificare il file /etc/ssh/sshd_config:

/etc/ssh/sshd_config
.....
Match User nomeutente 
       ChrootDirectory /chroot/%u
       ForceCommand internal-sftp #per limitare l'utente all'uso di sftp
       AllowTcpForwarding no
       X11Forwarding no
.....
Nota: La cartella di chroot deve essere posseduta da root, altrimenti non sarà possibile connettersi. Per maggiori informazioni consultare le pagine di manuale relative a Match, ChrootDirectrory e ForceCommand.

Risoluzione dei problemi

Connection reset by peer

  • Se si sta tentando di accedere ad un sistema remoto tramite il nome macchina, provare utilizzando l'indirizzo IP, potrebbe essere un problema di risoluzione dei nomi. Assicurarsi di modificare il file /etc/hosts aggiungendo l'indirizzo ed il nome del server.
  • Se si stanno utilizzando chiavi con nomi non standard, passare l'opzione con -i .ssh/my_key, non funziona. Sarà necessario usare -o IdentityFile=/home/user/.ssh/my_key, specificando il percorso assoluto della chiave.
  • Aggiungere l'opzione 'sshfs_debug' (ad esempio 'sshfs -o sshfs_debug user@server ...') può aiutare ad avere maggiori informazioni per risolvere il problema.
  • Se si utilizza sshfs in una rete gestita da un router che esegue DD-WRT o simile, la soluzione può essere trovata quì.
  • Discussione sul forum internazionale: sshfs: Connection reset by peer
Nota: Quando vengono passate diverse opzioni per sshfs, devono essere separate da una virgola. In questo modo: 'sshfs -o sshfs_debug,IdentityFile=</path/to/key> user@server ...')

Remote host has disconnected

  • Se si riceve questo messaggio direttamente appena si tenta di utilizzare sshfs, provare a controllare il percorso del Sybsystem elencato nel file /etc/ssh/sshd_config sulla macchina remota, e controllare che sia corretto.
  • Sarà possibile constrollare digitando find / grep XXXX dove XXXX è il percorso del subsystem.

fstab

Un esempio di come usare sshfs per montare un filesystem remoto tramite /etc/fstab

sshfs#NOMEUTENTE@NOMEMACCHINA_O_INDIRIZZOIP:/CARTELLA/REMOTA /PUNTO_DI_MOUNT/LOCALE fuse defaults 0 0

Ecco come potrebbe risultare la voce in fstab

sshfs#llib@192.168.1.200:/home/llib/FAH /media/FAH2 fuse defaults 0 0

Comunque questo non funzionerà automaticamente se non si utilizza una chiave ssh per l'utente. SSH Keys.

Se si vuole usare sshfs per diversi utenti:

sshfs#user@domain.org:/home/user  /media/user   fuse    defaults,allow_other    0  0
Nota: Con il precedente metodo, l'umount non verrà effettuato perché il filesystem non si trova in fstab. Per evitare questo errore, rimuovere il prefisso 'sshfs#', cambiare il filesystem da 'fuse' a 'fuse.sshfs', quindi creare uno script chiamato 'sbin/mount.fuse.sshfs':
/sbin/mount.fuse.sshfs
#!/bin/bash
DEVICE="$1"
MOUNTPOINT="$2"
OPTIONS="$4"

OPTIONS="${OPTIONS/,noauto/}"
OPTIONS="${OPTIONS/,user/}"

# workaround per evitare il conflitto dell'opzione 'user'
# in fstab, specificare 'login=joe' invece di 'user=joe'
OPTIONS="${OPTIONS/,login=/,user=}"

exec /usr/bin/sshfs "$DEVICE" "$MOUNTPOINT" -o "$OPTIONS"

Se si ottiene l'errore "connection reset by peer" usando il metodo di fstab, è probabile che il pc non sia connesso ad internet durante quella fase dell'avvio. La soluzione consiste nell'aggiungere alle applicazioni di avvio del proprio DE/WM il comando di mount tramite sshfs. A questo punto dell'avvio la connessione dovrebbe essere stata stabilita.

Opzioni

sshfs può convertire automaticamente l'id dell'utente locale e remoto, se si aggiunge l'opzione idmap:

# sshfs -o idmap=user sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876

Se per il server remoto si utilizza un nome utente diverso da quello in uso, può funzionare se viene utilizzata l'opzione ssh User:

# sshfs -o idmap=user,User=sessy2 sessy@mycomputer:/home/sessy /mnt/sessy -C -p 9876

(La prima forma è stata testata, la seconda è basata sulla documentazione, quindi potrebbe risultare leggermente differente.)

Link correlati