Après avoir installé ssh sur une machine distante, on peut facilement copier des fichiers dans un sens ou dans l'autre sans toutefois avoir la nécessité de donner un mot de passe à chaque commande. L'installation de sshfs permet de faire mieux, en effet elle permet d'intégrer le répertoire distant et son contenu dans la hiérachie locale et toutes les commandes locales deviennent applicables.
La description de cette installation est ici générale et est donc applicable à toute machine distante, à condition d'en avoir le controle, y compris un modem neufbox, un raspberry Pi, ...
On suppose qu'un compte utilisateur a été installé et est accessible par ssh (/etc/passwd, group, shadow, ~/.ssh + clés rsa).
On suppose également que la machine distante dispose d'un stockage externe (clé ou disque usb) accessible en lecture et écriture, sinon l'ajout de cette fonctionnalité ne présenterait pas beaucoup intérêt.
On installe le binaire sftp-server ou le paquet le contenant. Si il s'agit d'un paquet il s'installe dans /usr/lib ou /usr/libexec. Si vous installez le fcihier vous pouvez aussi utiliser les mêmes répertoires.
La fonctionnalité ssh est installée dans le logiciel d'origine de la box par le paquet dropbear. Cependant, dropbear ne possède pas la fonctionnalité sftp-server. Il faut donc le complémenter en installant le binaire sftp-server du paquet openssh-sftp-server, fourni par openwrt et son sytème de compilation. sftp-server est alors installé dans /usr/lib avec un lien symbolique dans /usr/libexec.
Sur notre machine PC, il faut commencer par installer le paquet sshfs suivant la procédure habituelle de votre distribution. Ce paquet fournit une commande qui s'appelle aussi sshfs. Il ne reste plus qu'à l'exécuter après avoir créer un répertoire, par exemple box, qui servira de point de montage.
mkdir box sshfs hq@omix: box ... fusermount -u box
Le répertoire principal de l'utilisateur hq de la machine omix est monté sur le répertoire box et fait ainsi partie de la hiérarchie locale de fichiers.
Voici les fichiers du répertoire box:
[hq@olix ~]$ ls box cron ff hqwget ipt1 pg rflashmain td teleidir usbdisk f h ipt ipt_ok psax status te testres
Après utilisation, la commande suivante permet de démonter notre répertoire box.
fusermount -u box
Le principe est le même pour la neufbox, mais celle-ci n'utilisant pas le port standart, il faut le spécifier dans la commande.
mkdir -p box sshfs hq@nb: box -p 1288
Dans le cas où la commande sftp-server est installée, pour une raison ou une autre, dans un autre répertoire, on peut donner à sshfs son chemin absolu
mkdir -p box sshfs hq@nb: box -p 1288 -o sftp_server=/opt/usr/sbin/sftp-server
La commande monte le répertoire ~hq de la machine distante nb et le port 1288 sur le point de montage box. L'option -o sftp_server= spécifie le chemin d'accès à sftp_server sur la machine distante.
Avec ssh, on se déplace sur la machine distante, on exécute les commandes de la machine distante sur les fichiers de la machine distante.
Avec sshfs on importe les fichiers distants sur la machine locale et on exécute les commandes locales sur ces fichiers.