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?

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

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)


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 remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/

  1. Et enfin, umount ...

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.