AutoFS utilise Fuse pour monter les partages réseau à la demande (et pas automatiquement).
Côté serveur
Il suffit d'avoir openssh-server installé. Tant qu'à faire fail2ban pour la sécurité, on sait jamais :
apt-get install openssh-server fail2ban
Niveau iptables, on va accepter les connexions en entrée sur le port 22 :
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
On peut traduire ça :
- -A INPUT : on parle de connexions en entrée
- -p tcp : pour le protocole TCP
- --dport 22 : pour le port de destination 22*
- -j ACCEPT : on accepte la connexion
*Pourquoi le le port 22 est le port de destination ? Parce que pour une connexion entrante, la source est le client, et la destination est le serveur.
Note que je suis pas fan d'iptables car par défaut, la configuration est perdue au redémarrage. Du coup, il faut chipoter avec des scripts ou définir la config par défaut dans je ne sais quel fichier, et c'est chiant. Si c'est un serveur distant, je fais un script que je lance manuellement à chaque redémarrage (pour pas me faire enfermer dehors 😉), si c'est sur le réseau local j'installe toujours un environnement graphique.
Côté client
- Première solution, on se connecte via le gestionnaire de fichiers. C'est plus simple, mais c'est à configurer pour chaque utilisateur, et il faut cliquer dans le gestionnaire de fichiers pour s'y connecter.

Éventuellement, sauver le signet, c'est plus simple. On peut aussi créer une clé SSH sans passphrase et la copier sur le serveur, ça permettra de ne jamais avoir à entrer de mot de passe.
- Deuxième solution, on passe par AutoFS + SSHFS. Tout se fait en root, et donc le partage sera valide pour tous les utilisateurs. Mais le gros avantage, c'est que par la suite le montage sera effectué à la demande, et sans mot de passe 🙂
On se met en root pour TOUTES les commandes suivantes :
sudo -i
On installe le nécessaire :
apt-get install autofs sshfs
On va configurer une clé SSH pour root, SANS passphrase (on laisse tout par défaut) :
ssh-keygen
On copie la clé SSH sur le serveur :
ssh-copy-id mediacenter@192.168.1.10
On configure le fichier /etc/auto.master en y ajoutant la ligne suivante :
/mnt/ /etc/auto.sshfs --timeout=600,--ghost
Ce qui veut dire (dans l'ordre) :
- On va monter les partages dans /mnt
- Les partages sont définis dans /etc/auto.sshfs
- Après 600 secondes d'inactivité, on ferme la connexion
- Le répertoire sera créé automatiquement pour chaque partage
On configure le fichier /etc/auto.sshfs avec les partages :
audio -fstype=fuse,port=22,rw,allow_other :sshfs\#mediacenter@192.168.1.10\:/home/mediacenter/audio
video -fstype=fuse,port=22,rw,allow_other :sshfs\#mediacenter@192.168.1.10\:/home/mediacenter/video
Ce qui veut dire (dans l'ordre) :
- on va créer automatiquement un dossier /mnt/video et /mnt/audio
- on se connecte en Read-Write (rw), et les autres utilisateurs que root (allow_other) ont accès à ce dossier
- on monte le dossier /home/mediacenter/audio présent sur 192.168.1.10 (la syntaxe est un peu zarbi, mais c'est facile à adapter)
On relance AutoFS :
service autofs restart
Et là, magie, les dossiers /mnt/audio et /mnt/video sont créés automatiquement, et on peut parcourir leur contenu sans avoir à entrer un seul mot de passe 🙂 Et surtout ce qui est top, c'est que si tu copies un fichier du client vers le serveur, tu n'auras pas de soucis avec les droits d'utilisateur, puisque derrière ça, c'est comme si tu faisais une copie SCP/SFTP et donc sur le serveur les fichiers seront crées par l'utilisateur mediacenter.
Petit exemple problématique :
- sur le serveur, j'ai 2 utilisateurs : john (UID=1000) et mediacenter (UID=1001). J'ai un dossier partagé dans /home/mediacenter/partage (disons en mode 777, pour simplifier)
- sur le client, j'ai 1 utilisateur : john (UID=1000)
Avec NFS, si mon client copie un fichier sur le serveur dans /home/mediacenter/partage (à supposer qu'il ait le droit de le faire, il faut déjà configurer ça), le fichier créé sera copié avec comme propriétaire le UID=1000, ce qui correspond à john. Sauf que par défaut, le fichier sera créé avec les permissions 644. Tu vois le souci ? Non ? 🙂 Tu viens de créer un fichier en mode 644 avec comme propriétaire john dans le répertoire /home/mediacenter/partage. Et donc, l'utilisateur mediacenter n'aura pas les permissions pour supprimer ce fichier, par contre l'utilisateur john, oui. Et ça va être la merde à gérer dès lors que tu as plusieurs utilisateurs...
Le pire, c'est que d'autres distribs ne numérotent pas à partir de 1000, mais de 500 (Fedora, par exemple) :
- sur le serveur (Ubuntu), j'ai 1 utilisateurs : john (UID=1000). J'ai un dossier partagé dans /home/john/partage
- sur le client (Fedora), j'ai 1 utilisateur : john (UID=500)
Si mon client copie un fichier sur le serveur via NFS, il va créer un fichier avec le UID=500 sur le serveur Ubuntu. Et sur Ubuntu, l'UID=500 n'existe même pas => sur le serveur, seul root sera autorisé à modifier/supprimer le fichier...
Avec SSHFS, zéro souci : quand on se connecte au serveur, on précise quel utilisateur du serveur on utilise. Du coup, quelque soit l'utilisateur du client, ça sera toujours le même utilisateur du serveur qui fera les opérations sur les fichiers. Pour avoir le même comportement dans NFS, on utilise... all_squash, anonuid=<your UID> et anongid=<your GID>, tout simplement. Ce qu'on spécifie avec ces options, c'est que NFS va changer l'utilisateur de chaque fichier créé par l'utilisateur/groupe <your UID>/<your GID>.
Autre avantage de passer par SSH : FileZilla, dispo pour n'importe quel OS, permet de se connecter au serveur via le port 22.
Sans AutoFS, tu dois configurer tes partages automatiques dans /etc/fstab. Sauf que si ton serveur n'est pas démarré avant ton client, le montage va foirer. Avec AutoFS, pas de souci : le montage sera fait quand c'est nécessaire (quand tu accèderas à /mnt/audio par exemple), et pas avant. Note que AutoFS permet aussi de monter des partages NFS 😉
http://doc.ubuntu-fr.org/autofs