Automount sshfs using fstab without mount -a

24

Veuillez considérer la ligne fstab suivante (sauts de ligne pour plus de lisibilité):

sshfs#[email protected]:/home/user/ 
/home/user/Server/ 
fuse    
auto,user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/user/.ssh/id_rsa,idmap=user,allow_other  
0 

Cela fonctionne bien, mais chaque redémarrage que je dois utiliser mount -apour monter le serveur (ou cliquez sur l'icône appropriée dans Thunar pour monter la chose)

Est-il possible de monter mon répertoire ssh immédiatement au démarrage?

J'utilise Xubuntu 13.10

user21886
la source

Réponses:

18

La syntaxe correcte pour monter des partages sshfs au démarrage, dans le fichier / etc / fstab est

 USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0

Il s'agit d'une adaptation aux distributions non systématiques des instructions contenues ici . Si vous êtes plutôt sur une distribution systemd (Arch, Fedora, OpenSUSE, ...), l'instruction appropriée est:

USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
MariusMatutiae
la source
Il ressemble presque exactement à la même ligne fstab que la mienne (sauf les autorisations et l'option symlink) Quoi qu'il en soit, je l'ai essayé, et sans succès. Je dois encore exécuter mount -aaprès le démarrage
user21886
C'est drôle, cela a juste fonctionné pour un autre utilisateur superuser.com/questions/666739/… . Avez-vous vérifié que vous êtes l'utilisateur 1000,1000 et que votre clé dans id_rsa?
MariusMatutiae
Oui, et cela fonctionne à 100%, mais je dois exécuter mount -aaprès le démarrage. Je pense à ajouter mount -aau démarrage automatique
user21886
Il est possible que cela se produise avant que votre réseau ne démarre après l'exécution du montage au démarrage. Essayez d'ajouter ces deux lignes dans rc.local sleep 10: mount -a
MariusMatutiae
Toujours pas de succès. Perpaphs, le problème est ma configuration - mon réseau Ethernet est en place 5 à 15 secondes après que xfce (et l'environnement de bureau) soit en place. Je ne sais pas pourquoi ubuntu fonctionne comme ça. Mon arc se connecte avant xfce etc.
user21886
4

Essayez d'utiliser l' option delay_connect .

Ligne complète / etc / fstab:

USER@HOSTNAME:/REMOTE/ /LOCAL/ fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
DmitrySandalov
la source
2

Celles delay_connect-ci _netdev, ... sont correctes mais ne fonctionneront pas sauf si vous modifiez la mise en réseau pour qu'elle apparaisse exactement dans (ou avant) cette petite fenêtre de temps, lorsque / etc / fstab est en cours de traitement. Lorsque le traitement est terminé et que la mise en réseau intervient plus tard, vous devez utiliser le mount -a(ou les amis).

Dans la plupart des cas (et le mien aussi), le network-managerproblème est causé, car il amène le réseau après la connexion par défaut. Il peut être modifié pour le faire apparaître plus tôt au démarrage. Si je me souviens bien, tout ce que vous devez faire est de cocher l'option Available to all usersdans la boîte de dialogue des propriétés de connexion (ou, si vous préférez la ligne de commande, créez manuellement la connexion dans /etc/NetworkManager/system-connections).

SkyRaT
la source
0

Sur la base de cette page d'aide ubuntu et de mes essais avec Debian 9, je le fais fonctionner et j'ai les bonnes autorisations de fichier avec cette fstabentrée:

sshfs#user@host:/remote/path /local/path fuse delay_connect,defaults,idmap=user,IdentityFile=/local/path/to/privatekey.pem,port=22,uid=1001,gid=1002,allow_other 0 0

delay_connectgarantit fstabque ne monte pas le dossier distant avant que les interfaces réseau ne soient en place.

Vous pouvez changer port, uid, gidpour répondre à vos besoins locaux. Pour comprendre mon uid/ gidje simplement utilisé $ idlorsque connecté avec le bon utilisateur.

allow_otherest là pour permettre à d'autres utilisateurs / groupes d'accéder au répertoire monté; Même avec les bonnes /local/pathautorisations (par exemple 777), cela est nécessaire si vous souhaitez qu'un utilisateur différent (différent de celui qui monte les sshfs) accède au répertoire monté.

D'autres options peuvent être trouvées dans la page de manuel sshfs

kheraud
la source