Ovvero un pendrive tramite SSH.
Tra le mille cose che permette di fare SSH possiamo letteralmente montare un disco remoto in locale.
Pensiamo a un pendrive USB che connettiamo al nostro computer. Immaginiamo, ora, di essere a Roma, di attaccare il pendrive a un computer a Milano e, tramite internet, trovarcelo connesso al nostro computer a Roma.
Se abbiamo capito lo scenario si intuiranno subito i vantaggi che possiamo avere.
Vediamo come usare questa funzione iniziando dalla presentazione dello scenario, poi una premessa tecnica, di seguito vediamo come si fa e concludiamo con alcune considerazioni.
Scenario
Pensiamo alla seguente situazione:
- abbiamo un computer, accessibile via internet, a Milano equipaggiato con Linux Mint (hostname: milano.example.com );
- siamo a Roma e abbiamo un computer con Linux Mint (hostname: roma.example.com );
- abbiamo dei dischi su computer a Milano che vogliamo usare da Roma.
Premessa
Per usare un disco remoto abbiamo bisogno di sshfs
.
Non tutte le distribuzioni lo installano con il sistema operativo.
Con altri ambienti *NIX va normalmente aggiunto anche se abbiamo installato SSH.
Per gli ambienti Windows va aggiunto un tool come Cygwin (https://www.cygwin.com/), o SSHFS-Win (https://github.com/winfsp/sshfs-win), o WinFsp (https://github.com/winfsp/winfsp).
Tornando agli ambienti Linux per installare sshfs
:
- Debian e derivate:
sudo apt install sshfs
- RedHat e derivate
sudo dnf install sshfs
- ArchLinux e derivate
sudo pacman -S sshfs
- SuSE e derivate
sudo zypper install sshfs
Infine sshfs
lavora in userspace. Questo significa che non abbiamo bisogno dei permessi di amministrazione di sistema (in Linux,cioè, avere i permessi sudo
).
Uso
Vediamo come usare sshfs
con lo scenario sopra esposto.
1. Montare un HDD remoto
Ipotizziamo che nel nostro computer a Milano abbiamo un hard disk da 1TB montato in /opt/data
e lo vogliamo usare sul nostro computer a Roma:
- apriamo un terminale;
- verifichiamo lo spazio disponibile
df -h
File system Dim. Usati Dispon. Uso% Montato su
tmpfs 591M 1,3M 590M 1% /run
efivarfs 256K 52K 200K 21% /sys/firmware/efi/efivars
/dev/vda2 63G 9,3G 50G 16% /
tmpfs 2,9G 0 2,9G 0% /dev/shm
tmpfs 5,0M 8,0K 5,0M 1% /run/lock
/dev/vda1 511M 6,2M 505M 2% /boot/efi
tmpfs 591M 192K 591M 1% /run/user/1000
- creiamo il punto di montaggio
mkdir ~/discoMilano
- montiamo il disco remoto con il seguente comando
sshfs
- verifichiamo lo spazio ora disponibile
df -h
File system Dim. Usati Dispon. Uso% Montato su
tmpfs 591M 1,3M 590M 1% /run
efivarfs 256K 52K 200K 21% /sys/firmware/efi/efivars
/dev/vda2 63G 9,3G 50G 16% /
tmpfs 2,9G 0 2,9G 0% /dev/shm
tmpfs 5,0M 8,0K 5,0M 1% /run/lock
/dev/vda1 511M 6,2M 505M 2% /boot/efi
tmpfs 591M 192K 591M 1% /run/user/1000
- infine smontiamo il disco
umount ~/discoMilano
2. Montare una directory remota
In questo secondo scenario vogliamo usare sul nostro computer di Roma la directory /home/usermilano/Documenti
del computer a Milano. La directory remota la montiamo nel path /home/userroma/Milano
:
- apriamo un terminale;
- verifichiamo lo spazio disponibile
df -h
File system Dim. Usati Dispon. Uso% Montato su
tmpfs 591M 1,3M 590M 1% /run
efivarfs 256K 52K 200K 21% /sys/firmware/efi/efivars
/dev/vda2 63G 9,3G 50G 16% /
tmpfs 2,9G 0 2,9G 0% /dev/shm
tmpfs 5,0M 8,0K 5,0M 1% /run/lock
/dev/vda1 511M 6,2M 505M 2% /boot/efi
tmpfs 591M 192K 591M 1% /run/user/1000
- creiamo il punto di montaggio
mkdir ~/documentiMilano
- montiamo la directory remota
sshfs
- verifichiamo lo spazio disponibile
df -h
File system Dim. Usati Dispon. Uso% Montato su
tmpfs 591M 1,3M 590M 1% /run
efivarfs 256K 52K 200K 21% /sys/firmware/efi/efivars
/dev/vda2 63G 9,3G 50G 16% /
tmpfs 2,9G 0 2,9G 0% /dev/shm
tmpfs 5,0M 8,0K 5,0M 1% /run/lock
/dev/vda1 511M 6,2M 505M 2% /boot/efi
tmpfs 591M 192K 591M 1% /run/user/1000
- infine smontiamo il disco
umount ~/documentiMilano
3. Montare un pendrive remoto
Questa operazione richiede che nel computer a Milano ( milano.example.com ) abbiamo inserito il pendrive e sia montato per l'utente "userroma" oppure, se si è intervenuti manualmente, sia montato e accessibile per tutti gli utenti.
Semplificando la situazione ipotizziamo che quando eravamo a Milano abbiamo lasciato il pendrive inserito, montato e ancora loggato l'utente "userroma".
Il pendrive è accessibile nel path standard /media/userroma/PENDRIVE
per il solo utente "userroma". Iniziamo:
- apriamo un terminale;
- verifichiamo lo spazio disponibile
df -h
File system Dim. Usati Dispon. Uso% Montato su
tmpfs 591M 1,3M 590M 1% /run
efivarfs 256K 52K 200K 21% /sys/firmware/efi/efivars
/dev/vda2 63G 9,3G 50G 16% /
tmpfs 2,9G 0 2,9G 0% /dev/shm
tmpfs 5,0M 8,0K 5,0M 1% /run/lock
/dev/vda1 511M 6,2M 505M 2% /boot/efi
tmpfs 591M 192K 591M 1% /run/user/1000
- creiamo il punto di montaggio
mkdir ~/pendriveMilano
- montiamo il disco remoto con il seguente comando
sshfs
- verifichiamo lo spazio ora disponibile
df -h
File system Dim. Usati Dispon. Uso% Montato su
tmpfs 591M 1,3M 590M 1% /run
efivarfs 256K 52K 200K 21% /sys/firmware/efi/efivars
/dev/vda2 63G 9,3G 50G 16% /
tmpfs 2,9G 0 2,9G 0% /dev/shm
tmpfs 5,0M 8,0K 5,0M 1% /run/lock
/dev/vda1 511M 6,2M 505M 2% /boot/efi
tmpfs 591M 192K 591M 1% /run/user/1000
- infine smontiamo il disco
umount ~/pendriveMilano
Conclusione
- La funzionalità in userspace permette di operare senza dover invocare permessi da amministratore;
sshfs
offre ottime performance in proporzione alla velocità della connessione di rete;sshfs
porta con se tutti i benefici offerti dassh
come la criptazione e l'autenticazione per chiavi;- questa tecnologia è un'ottima soluzione sia per interventi spot, sia per attività sistematiche;
sshfs
rende totalmente trasparente sia il tipo di filesystem impiegato, sia il sistema operativo;- non trattato qui, restano invece attivi i controlli di permessi e autorizzazioni lato sistema client;
- una difficoltà, soprattutto per i principianti, l'assenza di tool grafici, la necessità di conoscere prima i path ed una sintassi un po lunga.