[tuto] Monter un volume en ssh au démarrage - Carmagnole

Carmagnole

Soyez résolus de ne servir plus et vous voilà libres

[tuto] Monter un volume en ssh au démarrage

Rédigé par propositionjoe 2 commentaires
 
 
 
Comment monter un volume SSHfs

Prérequis:
Ce tuto a été testé avec succès sous debian 8 et sous fedora 25
 
 
Grand amateur de solutions qui nécessitent:
- peu d'installation,
- qui sont 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 compile 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 (notament 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

 

Ajouter 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 

Pour démonter

~$ 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:
 
 

2 commentaires

#1  - Krapace a dit :

Gros inconvénient : si il n'y a pas de réseau au boot de la machine (comme sur un portable) ca peut bloquer.

Le mieux serait d'ajouter un script au démarrage pour vérifier la connectivité vers le serveur et si c'est OK alors monter le disque réseau avec sshfs

#2  - propositionjoe a dit :

Tu as raison de souligner l'importance de la disponibilité de la source avant d'initier le montage; c'est pour cela que j'ai mis la directive _netdev. Pour l'usage que j'en ai, c'est à dire en ethernet cela suffit, reste que je ne sais pas comment réagit cette directive si aucune interface réseau n'est encore active...
À creuser donc

Les commentaires sont fermés.

Fil RSS des commentaires de cet article