Parfois, vous avez juste besoin de copier des fichiers entre deux ordinateurs, vous pouvez le faire avec scp, sftp ou rsync. Mais certaines de ces fois, vous devez également naviguer dans les dossiers distants et ces trois options sont trop lourdes. Une solution simple et rapide consiste à monter un dossier distant avec sshfs.
Vous pouvez exporter ce dossier avec NFS, Samba ou un autre système de fichiers réseau, mais vous devrez gérer des fichiers de configuration, des pare-feu,… Mais vous avez sûrement déjà un accès ssh à votre système distant. Si vous ne le faites pas, vous ne devriez pas être ici.. Je pense xD
Installer le package requis
Je suppose que sur l'origine (le "serveur"), vous avez déjà un accès ssh en cours d'exécution. Sur la destination (le "client"), vous devez installer un programme nommé sshfs.
Binaires
Sur les dérivés de debian (ubuntu, mint, devuan), lancez :
sudo apt-get install sshfs
Sur centos, fedora et autres distributions fonctionnant avec yum :
sudo yum install sshfs
Compilation
Sur Gentoo Linux, exécutez :
emerge -av net-fs/sshfs
Sur FreeBSD, installez le port avec :
# cd /usr/ports/sysutils/fusefs-sshfs/ # make install clean
Téléchargement et compilation manuels
Allez sur https://github.com/libfuse/sshfs pour télécharger et suivez les instructions du fichier readme.
Monter un dossier distant avec sshfs
Avec l'exécutable sshfs, monter n'importe quel dossier distant est aussi simple que de l'exécuter :
sshfs user@host:/path/to/remote/folder /path/to/mountpoint/
Saisir des mots de passe est ennuyeux…
Je sais, mais malheureusement, sshfs n'inclut pas le -i
commutateur pour charger un fichier de clé privée. Heureusement, sshfs inclut le -o
switch pour appeler la plupart (sinon la totalité) des options ssh.
L'option dont nous avons besoin est IdentityFile
. Jetez un œil à ma capture d'écran, pour une raison quelconque, je n'ai pas utilisé le nom standard id_rsa/id_rsa.pub lorsque j'ai généré mes clés. Je ne me souviens pas de cette raison.
Rendre permanent
Cela durera jusqu'à ce que vous redémarriez votre système. Pour le rendre permanent, vous devez ajouter à votre /etc/fstab la ligne suivante :
user@host:/path/to/remote/ /path/to/mountpoint fuse.sshfs defaults 0 0
Alternatives à sshfs
Vous pouvez faire la même chose, mais le système distant ne serait pas disponible à l'échelle du système (par exemple, apache ne pourrait pas utiliser un dossier distant) avec mc, le commandant de minuit, en appuyant sur F9 et en choisissant le lien Sftp :
À l'invite, écrivez l'adresse distante en suivant ce format sftp://[user@]machine:[port]/[remote-dir]
, puis écrivez votre mot de passe et vous êtes dedans.
Côté bureau graphique, plusieurs gestionnaires de fichiers le supportent. Je n'ai pas utilisé les grands (comme gnome, kde, etc.) pendant longtemps, je ne connais même plus les noms des programmes, mais je sais qu'ils supportent ssh. Il s'agit de pcmanFm de LXDE, utilisez une adresse au même format qu'avec le commandant de minuit, par exemple :
Je ne connais pas le nom du paquet qui fait cette magie, mais si vous utilisez Linux sur un ordinateur de bureau, vous l'avez probablement déjà installé.