Vous êtes ici

Monter automatiquement un partage réseau via SSHFS sur un système GNU/Linux

Testé sur Ubuntu & autres forks de Debian...

Supposons que vous ayez un serveur de fichiers sur votre réseau local auquel vous accédez particulièrement souvent depuis votre poste de travail. Vous n'êtes bien sur pas seul sur ce réseau local, et vous n'êtes pas non plus le seul à utiliser votre poste de travail (c'est fréquent en milieu professionnel).

Alors pour "monter" des partages réseau au démarrage du poste vous pouvez bien sur modifier le fichier fstab pour ajouter des entrées (SMB/CIFS,NFS, etc.) car cela reste une option simple et efficace, néanmoins dans certains cas cette solution peut ne pas s'avérer suffisamment sécurisée ou même inadaptée si les partages à monter sont différents selon les utilisateurs d'un poste.

Comme alternative vous pouvez utiliser le système de fichiers virtuel FUSE. FUSE peut reposer sur de nombreuses architectures pour toutes sortes d'utilisations, mais dans notre cas c'est SSH qui sera utilisé afin de permettre un accès réseau sécurisé à une machine.

Bien que l'on pourra par la suite monter des partages sans être super utilisateur (administrateur) de votre poste, dans un premier temps il vous faudra ce privilège pour installer cette implémentation de FUSE : SSHFS. Pour cela ouvrez un shell et procédez de cette manière.


apt-get install sshfs

Avant d'entrer dans le vif du sujet, nous allons d'abord nous assurer que le montage ne demande pas systématiquement une authentification qui pourrait rapidement devenir pénible si vous avez à redémarrer régulièrement votre poste de travail. Pour cela nous allons utiliser le principe de l'échange de clé publique, sur votre poste de travail faites un :


ssh-keygen -t rsa

Appuyez simplement sur entrée lorsque ces questions vous sont posées

  1. Enter file in which to save the key (/home/moncompte/.ssh/id_rsa):
  2. Enter passphrase (empty for no passphrase):
  3. Enter same passphrase again

Copiez votre clé publique sur le serveur avec scp. Attention cependant si vous avez déjà un fichier authorized_keys sur le serveur il faudra procéder autrement pour ne pas l'écraser...


scp /home/moncomptelocal/.ssh/id_rsa.pub moncompte@mon.adresse.de.serveur:/home/moncompte/.ssh/authorized_keys

Sécurisez la clé sur votre poste en n'autorisant que la lecture et l'écriture pour votre compte :


chmod 600 ~/.ssh/id_rsa*

Vous pourrez faire de même sur le serveur plus tard avec le fichier "/home/moncompte/.ssh/authorized_keys". Remarquez que nous venons de faire le plus difficile et pourtant nous n'avons pas encore monté notre partage via SSHFS, vous allez réparer cela rapidement en exécutant les commandes suivantes :


# Création du dossier pour le montage
mkdir ~/MesDonneesPersoSurLeReseau
# Le montage en lui même
sshfs moncompte@mon.adresse.de.serveur:/home/moncompte ~/MesDonneesPersoSurLeReseau

Il ne vous reste plus qu'à créer un fichier loginscript.sh qui contiendra la dernière ligne et que l'on ajoutera à l'ouverture de session (via un fichier ~/.config/autostart/loginscript.sh.desktop de l'environnement de bureau Gnome par exemple)

Attention ! Si le profil du compte utilisateur de votre poste de travail est compromis, on aura facilement accès à vos données sur le serveur... il est donc particulièrement recommandé de protéger votre compte avec un bon mot de passe voir de chiffrer le profil avec un utilitaire comme TrueCrypt.

Attention également, si vous avez installé fail2ban sur votre serveur, d'expérience je me suis déjà fait couillonner une fois car l'adresse IP de mon poste de travail a été ajoutée dans le fichier /etc/hosts.deny du serveur (sshd:). Pour éviter cela, vous pouvez ajouter de manière préventive l'adresse IP de votre poste dans le fichier /etc/hosts.allow ou au pire pour corriger, changez l'adresse IP de votre poste de travail ou connectez vous directement au serveur ou encore autorisez définitivement les adresses de réseau local via le paramètre ignoreip du fichier /etc/fail2ban/jail.conf.

Compléments :

http://dasunhegoda.com/ssh-without-password/579/

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-passwo...