SSH: usare HDD remoti: copertina

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 Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:/opt/data ~/discoMilano

  • 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
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:/opt/data          800G  192K    800G   0% /home/userroma/discoMilano

  • 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 Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:/home/usermilano/Documenti ~/documentiMilano

  • 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
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:/home/usermilano/Documenti  800G  648G    152G  82% /home/userroma/documentiMilano

  • 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 Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:/media/userroma/PENDRIVE ~/pendriveMilano

  • 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
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.:/media/userroma/PENDRIVE   58G   12G     47G  20% /home/userroma/pendriveMilano

  • 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 da ssh 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.