web-dev-qa-db-fra.com

Montage automatique du système de fichiers distant au redémarrage sans mot de passe avec sshfs

Ce que je veux:

  • démarrer mon système (dans ce cas, Ubuntu 18.04 sur un ordinateur portable)
  • avoir accès à un système de fichiers distant via /home/<user>/mnt/remote-HD0

Ce que j'ai essayé

  • éditez/etc/fstab avec la commande sshfs
  • éditez/etc/crontab avec la balise @reboot et exécutez un script pour exécuter la commande sshfs
  • a essayé le service custommade systemd pour exécuter un script pour exécuter la commande sshfs

J'ai toujours utilisé des chemins absolus et j'ai également passé une sshkey (qui est copiée via ssh-copy-id sur le système distant) afin que je n'ai pas à taper de mot de passe. J'ai également commenté user_allow_other de /etc/Fuse.conf.

Qu'est-ce qui ne fonctionne pas?

Si je tape le cmd

sshfs -o allow_other,delay_connect,reconnect,identityfile=/home/<user>/.ssh/id_rsa <remote@filesystem>:/mnt/HD0 /home/<user>/mnt/remote-HD0

dans un terminal ou l'exécuter via un script exécutable, cela fonctionne comme prévu. J'ai accès au système de fichiers et je n'ai pas besoin de taper pw. Cependant, lorsque j'utilise la version fstab avec

sshfs#<remote@filesystem>:/mnt/HD0    /home/<user>/mnt/remote-HD0    Fuse    defaults,_netdev,allow_other,identityfile=/home/<user>/.ssh/id_rsa 0 0

il ne monte pas jusqu'à ce que j'utilise

 Sudo mount -a

et être invité à taper pw pour la connexion ssh et appuyez sur Entrée pour une phrase de passe vide ....

Avec les deux autres tentatives (crontab & systemd), cela ne fonctionne pas du tout ou il est cassé, car /home/<user>/mnt/remote-HD0 n'est pas accessible, c.-à-d.

ls /home/<user>/mnt/remote-HD0
ls: cannot access 'remote-HD0': Input/output error


ls -la
drwxrwxr-x  4 <user> <user> 4096 Jun 19 13:46 .
drwxr-xr-x 38 <user> <user> 4096 Jun 19 15:22 ..  
d?????????  ? ?      ?      ?    ?            remote-HD0

Donc, quelque chose s'est mal passé avec le processus de montage. Il y a (probablement) deux problèmes:

  1. La commande sshfs est exécutée avant que le réseau ne soit en ligne (que j'ai essayé de prendre en compte en utilisant le service crontab et systemd)

  2. Même avec l'utilisation d'une commande de mise en veille, ce problème avec "l'erreur d'entrée/sortie" se produit.

J'ai déjà passé quelques heures à essayer de résoudre ce problème et j'ai appris un peu sur toutes les méthodes utilisées, mais en ce moment, j'espère juste une solution pour que je puisse continuer (de préférence en utilisant fstab ou systemd, comme il semble être la bonne tentative).

2
Arthur

Selon Révision # 4 de la question:

Ajout de la ligne export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh au script sh a résolu le problème avec cron.

1
Kulfy