Fstab est mon ami.
Prérequis
Ce tuto a été testé avec succès sous debian 8 et sous fedora 25.
Besoins
Grand amateur de solutions qui nécessitent:
- peu d’installation,
- qui soient chiffrées,
- et qui n’appellent que des configurations simples et lisibles.
J’utilise beaucoup l’échange de fichier par ssh, Dans nautilus la commande pour se connecter est claire, rapide, et peut être gardée en mémoire avec un simple signet:
~$ ssh://utilisateur-distant@host-ou-ip:port
Ayant récemment eu besoin d’automatiser le processus au démarrage (dans mon cas, je souhaitais qu’une de mes vm ait à disposition des répertoires d’un serveur distant), j’ai fouillé le net et ai trouvé des informations que je partage ici. Jusqu’à maintenant j’utilisais curlFTPfs pour mener cette mission mais je l’ai laissé de côté car je le trouve trop lent et alambiqué à configurer (notamment en ftps)… Bref tout le contraire du ssh, qui ne demande qu’une clé et peu de bidouille. En parlant bidouille voyons donc dans la pratique comment les choses se passent (bien).
Installations des logiciels nécessaire et du répertoire
~$ apt install sshfs
~$ apt install fuse
~$ mkdir /répertoire-de-destination
Se placer dans le répertoire de clé SSH de son utilisateur-local pour y créer la clé
~$ cd /home/utilisateur-local/.ssh/
~$ ssh-keygen -t rsa -b 4096
Envoyons maintenant la clé publique sur son serveur distant
~$ ssh-copy-id -i /home/utilisateur-local/.ssh/id_rsa.pub utilisateur-distant@host-ou-ip:port
Cet échange automatise la connexion ssh entre l’utilsateur local et l’utilisateur distant. Par principe il est toujours déconseillé de laisser la possibilité de se connecter en root sur son serveur; mais vous faites comme vous voulez chez vous.
Autoriser un utilisateur non root à avoir accès au volume monté par fuse dans fstab
~$ nano /etc/fuse.conf
# mount_max = 1000
# Allow non-root users to specify the 'allow_other' or 'allow_root' mount options.
user_allow_other #il faut simplement décommenter cette ligne
Ajoutons une ligne dans fstab
~$ nano /etc/fstab
sshfs#utilisateur-distant@host-ou-ip:/répertoire-de-départ /répertoire-de-destination fuse port=XX,noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/utilisateur-local/.ssh/id_rsa,allow_other,reconnect 0 0
Testons
~$ mount /répertoire-de-destination
Démontons
~$ umount /répertoire-de-destination
Si tout s’est bien passé, vous devriez avoir votre /répertoire-de-destination monté automatiquement au prochain démarage.
Sources:
https://wiki.archlinux.org/index.php/SSHFS
https://doc.ubuntu-fr.org/sshfs