Est-il possible de monter automatiquement des sshfs

10

Est-il possible de monter automatiquement un FS distant en utilisant sshfs lors de l'instanciation d'une connexion VPN appropriée?

Permettez-moi d'expliquer le scénario, je travaille à distance, pour que cela aide si je peux monter mon répertoire personnel à partir d'un serveur au bureau. Pour ce faire, je dois vpn. Donc, dans le gestionnaire de réseau, je sélectionne le VPN approprié et me connecte. Il se connecte mais maintenant je dois passer à la ligne de commande et monter mon répertoire personnel sur plusieurs machines.

Si j'oublie de faire une machine, mon environnement de développement local n'est pas aussi efficace. Je suppose que je pourrais écrire un script bash rapide pour le faire, mais je préfère le faire fonctionner automatiquement lorsque je me connecte.

Mark D
la source
@Seth Cette question est en double;)
Radu Rădeanu
@ RaduRădeanu Cette question est plus générale, elle sera donc plus utile aux gens à l'avenir.
Seth
En fait, j'ai changé d'avis, ce sont des questions totalement différentes.
Seth

Réponses:

12

Trouvez l'UUID de votre connexion en utilisant

$ nmcli con

Notez que cela répertorie non seulement les connexions physiques mais également les connexions sans fil définies (SSID).

Mettez un script simple comme celui-ci dans votre /etc/NetworkManager/dispatcher.d/répertoire:

#!/bin/bash

# Specify your connection UUID you like to trigger on below.
MYCON_UUID=397bdb70-2a89-415e-b3e9-09ca0b704fc1

if [ "$CONNECTION_UUID" == "$MYCON_UUID" ]
then
    # do your scripting you need to do here:
    mount -t sshfs ...
fi

N'oubliez pas de définir les bonnes autorisations pour le rendre échangeable (ie chmod +x trigger-sshfs-on-vpn.sh). Il peut s'agir de n'importe quel type de script, un script Bash est probablement suffisant pour votre objectif.

NetworkManager exécute simplement tous les scripts de ce répertoire en fournissant des variables d'environnement que vous pouvez utiliser pour les scripts. Dans ce cas, vous avez probablement juste besoin CONNECTION_UUID.

gertvdijk
la source
Cela semble être la meilleure façon de procéder. Cependant, je ne peux pas me rendre mount -t sshfs user@host:/dir /home/myuser/dirau travail, j'ai donc essayé, sshfs hostname:?directory /home/myuser/dirmais cela ne semble pas fonctionner non plus. Des idées?
Mark D
@MarkD Votre problème se pose-t-il uniquement dans un script de répartiteur NetworkManager? Sinon, vous voudrez peut-être poser une autre question à ce sujet. Et veuillez être plus précis sur "ne fonctionne pas".
gertvdijk
@gertvdijk Que faire si j'utilise la clé ssh prv pour la connexion et que je souhaite avoir les mêmes autorisations que l'utilisateur qui exécute sshfs? ce qui signifie, les autorisations fonctionneront-elles aussi?
confiq
1
@confiq Non, NetworkManager exécutera ce script en tant que root. Comme pour tout autre appel depuis root en tant qu'utilisateur, utilisez su. Par exemple. su -l username -c 'mycommand'
gertvdijk
1

Utilisez des autofs.

Autofs montera automatiquement un dossier qui est configuré comme point de montage lorsque quelqu'un ou quelque chose y accède sur votre système.

Le point de montage peut être un hôte distant via sshfs ainsi qu'un autre point de montage arbitraire tel que:

  • samba
  • nfs
  • NTFS

voici un joli howto

tomodachi
la source
Alors que les autofs fonctionneraient si le réseau était accessible de temps en temps. Il n'est accessible que lorsque je suis connecté au VPN.
Mark D