Introduzione:
Se si desidera montare una directory su un server remoto tramite Internet, NFS può essere una vera sfida da proteggere. Una buona soluzione sarebbe quindi utilizzare SSHFS. Ecco un Howto per Debian Jessie.
Nota: In Wheezy e in Jessie prima di eseguire un aggiornamento al kernel 3.16.0-4-amd64, la seguente voce in /etc/fstab funzionava:sshfs#[email protected]:/remote_dir /local_dir fuse defaults 0 0
MA, non appena ho aggiornato Jessie al kernel 3.16.0-4-amd64, non potevo più avviare e il sistema è entrato in modalità di emergenza segnalando che dovevo fornire la password di root o premere Ctrl-D per Continua. Ctrl-D non ha portato da nessuna parte e il sistema è andato in crash. È stato anche suggerito di dare il comando "journalctl -xb" per scoprire cosa non andava dopo aver fornito la password di root. Questo comando mi ha dato l'indicazione che "non è stato possibile eseguire il processo /bin/plymouth". Bene, il messaggio è piuttosto fuorviante poiché l'errore era che il nuovo kernel non supportava più il metodo precedente di montaggio di un filesystem utilizzando SSHFS in /etc/fstab. Commentare questa voce in /etc/fstab mi ha permesso di avviare e in seguito di cambiare la voce con una nuova che funzionasse, che segue.
Per prima cosa installa il pacchetto necessario:apt-get install sshfs
Poi considerando i due scenari:
1 – Montaggio utente:montaggio di una directory remota appartenente all'utente "media" utilizzando SSHFS e le chiavi ssh. L'utente "media" è stato configurato in entrambi i server per avere lo stesso UID.
2 – Root mount:montaggio di una directory remota appartenente a root utilizzando SSHFS e le chiavi ssh.
Scenario 1:(montaggio utente)
Sul server remoto esegui il comando: useradd -d /home/media/ -u 2017 -s /bin/bash media
passwd media (give any password, that will need to be deleted later anyway)
mkdir -p /home/media/share1
chown -R media: /home/media/share1
Sul server locale esegui i comandi: useradd -d /home/media/ -u 2017 -s /bin/bash media
mkdir -p /home/media/share1
chown -R media: /home/media/share1
su - media
ssh-keygen -t rsa (press <Enter> to all questions)
ssh-copy-id [email protected] (enter media user's temporary password of remote server)
Entra in /etc/fstab :[email protected]:/home/media/share1 /home/media/share1 fuse.sshfs noauto,x-systemd.automount,_netdev,user,idmap=user,follow_symlinks,identityfile=/home/media/.ssh/id_rsa,allow_other,default_permissions,uid=2017,gid=2017 0 0
Di nuovo sul server remoto, disabilita la password dell'utente usando il comando: passwd -l media
———- Fine scenario 1 ———–
Scenario 2 (montaggio root)
ssh-copy-id [email protected] (enter 'root' password of remote server)
Entra in /etc/fstab :[email protected]:/share2 /share2 fuse.sshfs noauto,x-systemd.automount,_netdev,user,idmap=user,follow_symlinks,identityfile=/root/.ssh/id_rsa,allow_other,default_permissions,uid=0,gid=0 0 0
———- Termina lo scenario 2 ———–
Quindi riavvia il sistema reboot
Dopo il riavvio non vedrai ancora alcuna voce di montaggio se dai il comando 'mount'. Apparirà solo dopo il primo tentativo di accesso al punto di montaggio nel server locale. Questo mount è governato da systemd. Non è possibile controllare manualmente il montaggio e lo smontaggio di questo nuovo metodo poiché è controllato da systemd. Sto ancora cercando modi per montare/smontare manualmente questo montaggio controllato da systemd. Qualsiasi suggerimento è il benvenuto.