Monter le répertoire distant en utilisant SSH

69

Comment monter un répertoire distant en utilisant SSHpour être disponible comme s'il s'agissait d'un répertoire local?

Maythux
la source

Réponses:

78

Installez d'abord le module:

sudo apt-get install sshfs

Chargez-le dans le noyau:

sudo modprobe fuse

Définition des autorisations (versions Ubuntu <16.04):

sudo adduser $USER fuse
sudo chown root:fuse /dev/fuse
sudo chmod +x /dev/fusermount

Nous allons maintenant créer un répertoire dans lequel monter le dossier distant.

J'ai choisi de le créer dans mon répertoire personnel et de l'appeler remoteDir.

mkdir ~/remoteDir

Maintenant, j'ai lancé la commande pour le monter (mount on home):

sshfs maythux@192.168.xx.xx:/home/maythuxServ/Mounted ~/remoteDir

Maintenant, il devrait être monté:

cd ~/remoteDir
ls -l
Maythux
la source
Je suis un peu confus ... dans la sshfscommande, je pense que le répertoire local du point de montage est nommé remoteDir, et lorsque je suis sur ssh ssh, il y a un répertoire /home/maythuxServ/Mountedqui n'est pas monté localement, et je ne peux pas dire, ou soin, que ce soit monté ailleurs?
Volker Siegel
3
J'ai sauté certaines de ces étapes sous 14.04 lorsque j'ai utilisé le guide suivant: help.ubuntu.com/community/SSHFS
Hemm
4
Aucun groupe de fusibles requis (Ubuntu 16.04, nov. 2017): stackoverflow.com/questions/35635631/ubuntu-15-10-no-fuse-group
Matt Kleinsmith
2
Le 18.04, j’ai ignoré le 2e bloc complet - en définissant les autorisations et cela fonctionne bien.
optimiste
3
La moitié de cette réponse ne fonctionne pas ou est obsolète. S'il vous plaît envisager de mettre à jour.
Luís de Sousa
18

Configurez l'authentification basée sur la clé ssh

Générer une paire de clés sur l'hôte local.

$ ssh-keygen -t rsa

Acceptez toutes les suggestions avec la touche Entrée.

Copier la clé publique sur l'hôte distant:

$ ssh-copy-id -i .ssh/id_rsa.pub user@host

Installez sshfs

$ sudo apt install sshfs

Monter le répertoire distant

$ sshfs user@host:/remote_directory /local_directory

N'essayez pas d'ajouter un fs distant à / etc / fstab

Ou n'essayez pas de monter des partages via / etc / rc.local.

Dans les deux cas, cela ne fonctionnera pas car le réseau n'est pas disponible quand init lit / etc / fstab.

Installer AutoFS

$ sudo apt install autofs

Éditez /etc/auto.master

Commentez les lignes suivantes

#+/etc/auto.master.d
#+/etc/auto.master

Ajouter une nouvelle ligne

/- /etc/auto.sshfs --timeout=30

Sauvegarder et quitter

Éditez /etc/auto.sshfs

Ajouter une nouvelle ligne

/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory

Le nom d'utilisateur distant est obligatoire.

Sauvegarder et quitter

Démarrer autofs en mode débogage

$ sudo service autofs stop
$ sudo automount -vf

Observez les journaux du serveur ssh distant

$ ssh user@remote_server
$ sudo tailf /var/log/secure

Vérifier le contenu du répertoire local

Vous devriez voir le contenu du répertoire distant

Démarrer autofs en mode normal

Arrêtez l'exécution d'AutoFS en mode débogage avec CTRL-C.

Démarrer AutoFS en mode normal

$ sudo service autofs start

Prendre plaisir

(Testé sur Ubuntu 14.04)

Wojciech Domalewski
la source
5

Sur la base de mes expériences, créer explicitement le groupe de fusibles et y ajouter votre utilisateur n'est PAS nécessaire pour monter le système de fichiers ssh.

Pour résumer, voici les étapes copiées à partir de cette page:

  1. Installer sshfs

$ sudo apt-get install sshfs

2.Créez le point de montage local

$ mkdir /home/johndoe/sshfs-path/

3. Monter le dossier distant /remote/pathsur/home/johndoe/sshfs-path/

$ sshfs [email protected]:/remote/path /home/johndoe/sshfs-path/

  1. Et enfin, umount ...

$ fusermount -u /home/johndoe/sshfs-path/

Prathu Baronia
la source
3

Installez sshfs

sudo apt-get install sshfs

Ajouter à fstab:

<USER>@<SERVER_NAME>:<server_path> <local_path> fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/<YOUR_USER_NAME>/.ssh/id_rsa,allow_other,default_permissions,rw,nosuid,nodev,uid=1000,gid=1000,nonempty 0 0
Sergei
la source