Configurer un montage automatique à la demande d'un répertoire distant via SSH
Le but de ce tutoriel est de paramétrer le montage automatique (dans le sens ou il n'est pas nécessaire d'entrer un mot de passe) à la demande (dans le sens ou le dossier n'est monté que si l'utilisateur le demande via nautilus ou dans un terminal) d'un dossier distant via une connection SSH
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Avoir un accès SSH à une machine distante
- Avoir parametrer SSH avec une authentification_par_un_systeme_de_cles_publiqueprivee
Parametrage
Afin de pouvoir monter le répertoire distant à la demande, il faut le paramétrer dans FSTAB Il faut éditer le fichier /etc/fstab et y ajouter une ligne qui aura la syntaxe suivante:
$USER@$SERVER:$DIR $MOUNT_DIR fuse.sshfs $OPTIONS 0 0
avec les variables suivantes à modifier selon votre configuration: $USER= le nom d'utilisateur pour la connection SSH $SERVER= l'adresse du server soit un nom de domaine soit une ip $DIR=le chemin du dossier distant à monter $MOUNT_DIR=le point de montage local $OPTION=les options à passer lors du montage, nous allons voir quelles options parametrer un peu plus loin
sshfs#$USER@$SERVER:$DIR $MOUNT_DIR fuse OPTIONS 0 0
Les options que nous allons ajouter sont les suivantes, il faudra choisir entre user et users selon le besoin, parametrer le PORT et le chemin vers la clef d'authentification
- noauto
Ne pas monter automatiquement la partition au démarrage du système, elle ne pourra pas non plus être montée automatiquement avec la commande mount -a
il est nécessaire de la montée explicitement - noatime
Ne pas mettre jour les horodatages d'accès à chaque accès (améliore la rapidité). - _netdev
Le système de fichier réside sur un périphérique nécessitant des accès réseau (pour éviter que le système essaye de monter ces systèmes de fichiers avant d'avoir activé le réseau). - users
Permettre à tous les utilisateurs de monter et démonter le système de fichiers. Cette option implique les options noexec, nosuid, et nodev (sauf s'il y a une surcharge par une option ultérieure, comme sur la ligne users,exec,dev,suid). - user
Autoriser les utilisateurs ordinaires à monter le système de fichiers. Le nom de l'utilisateur est noté dans mtab pour qu'il puisse le démonter ensuite. Ceci entraîne l'utilisation des options noexec, nosuid, et nodev (à moins qu'elles ne soient explicitement surchargées, comme dans une ligne d'option user,exec,dev,suid). - port=PORT
port sur lequel doit se faire la connection ssh, si elle se fait sur le port standard, soit le port 22, alors ce paramètre n'est pas necessaire. - compression=yes
utiliser la compression (limite l'utilisation réseau, sollicite plus de processeur) - idmap=TYPE
user/group ID mapping, les types possibles sont :
none > (default) pas de mapping
user > traduit uniquement l'UID de l'utilisateur connecté
file > traduit les UIDs/GIDs en se basant sur les UIDs/GIDs stocké dans un fichiers - reconnect
reconnect to server - allow_other
permettre l'accès aux autres utilisateurs, notamment root - xsystemd.automount
pour les distribution utilisant systemd ce qui semble être le cas pour Ubuntu à partir de 15.04 - IdentityFile=$PATH_TO_ID
pour indiquer ou se situe la cle d'authentification SSH et permettre à ROOT (ou les autres utilisateur selon les paramétrages de user/users) de l'utiliser sans avoir a en creer une spécifiquement pour ROOT
Ainsi si l'on souhaite monter, par exemple le dossier /home/user1_distant/ du serveur monserveur.org accessibe sur le port 1234 dans le point de montage local /mnt/dossier_distant avec une cle d'authentification dans /home/user1_local/.ssh/id_rsa pour que seul l'utilisateur qui monte le dossier puisse y acceder (option user), alors le paramétrage de FSTAB devrais ressembler à ceci:
user1_distant@monserver.org:/home/user1_distant/ /mnt/dossier_distant/ fuse.sshfs noauto,noatime,_netdev,user,port=1234,idmap=user,reconnect,allow_other,x-systemd.automount,IdentityFile=/home/user1_local/.ssh/id_rsa 0 0
Afin que l'option allow_other soit acceptée par FUSE, il faut décommenter la ligne dans /etc/fuse.conf
user_allow_other
Afin que l'utilisateur puisse utiliser fuse sans être root alors il faut l'ajouter au groupe fuse (permet de lire le fichier de conf /etc/fuse.conf lors du montage)
sudo adduser $USER fuse
Utilisation
Voila nous pouvons maintenant très facilement monter et démonter automatiquement sans requête de mot de passe, et à la demande le dossier distant.
Soit via nautilus
Soit en ligne de commade via les commandes mount et umount passés en tant qu'utilisateur