¿Es posible montar sshfs automáticamente

10

¿Es posible montar automáticamente un FS remoto usando sshfs al crear una instancia de una conexión VPN adecuada?

Permítanme explicar el escenario, estoy trabajando de forma remota, para hacer eso ayuda si puedo montar mi directorio de inicio desde un servidor en la oficina. Para hacer eso, necesito vpn. Entonces, dentro del administrador de red, selecciono la VPN relevante y me conecto. Se conecta pero ahora tengo que bajar a la línea de comando y montar mi directorio de inicio en varias máquinas.

Si me olvido de hacer una máquina, mi entorno de desarrollo local no es tan eficiente. Supongo que podría escribir un script bash rápido para hacer esto, pero prefiero que se ejecute automáticamente cuando me conecto.

Mark D
fuente
@Seth Esa pregunta es un duplicado de esto;)
Radu Rădeanu
@ RaduRădeanu Esa pregunta es más general, por lo que será más útil para las personas en el futuro.
Seth
En realidad, he cambiado de opinión, son preguntas totalmente diferentes.
Seth

Respuestas:

12

Encuentra el UUID de tu conexión usando

$ nmcli con

Tenga en cuenta que esto enumera no solo las conexiones físicas, sino también las conexiones inalámbricas definidas (SSID).

Ponga un script simple como este en su /etc/NetworkManager/dispatcher.d/directorio:

#!/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

No olvide establecer los permisos correctos para que sea ejecutable (es decir chmod +x trigger-sshfs-on-vpn.sh). Puede ser cualquier tipo de script, un script Bash probablemente sea suficiente para su propósito.

NetworkManager solo ejecuta todas las secuencias de comandos en este directorio proporcionando algunas variables de entorno que puede utilizar para la creación de secuencias de comandos. En este caso, probablemente solo necesites CONNECTION_UUID.

gertvdijk
fuente
Esta parece ser la mejor manera de hacer esto. Sin embargo, no puedo ir mount -t sshfs user@host:/dir /home/myuser/dira trabajar, así que lo he intentado sshfs hostname:?directory /home/myuser/dirpero tampoco parece funcionar. ¿Algunas ideas?
Mark D
@MarkD ¿Su problema solo surge en un script de despachador de NetworkManager? Si no, entonces es posible que desee hacer otra pregunta para esto. Y por favor sea más específico sobre "no funciona".
gertvdijk
@gertvdijk ¿Qué sucede si uso la clave ssh prv para conectarme y quiero tener los mismos permisos que el usuario que ejecuta sshfs? es decir, ¿funcionarán los permisos también?
confiq
1
@confiq No, NetworkManager ejecutará este script como root. Como con cualquier otra invocación desde la raíz como usuario, use su. P.ej. su -l username -c 'mycommand'
gertvdijk
1

Usa autofs.

Autofs montará automáticamente una carpeta configurada como punto de montaje cuando alguien o algo esté accediendo a ella en su sistema.

El punto de montaje puede ser un host remoto a través de sshfs, así como otro punto de montaje arbitrario como:

  • samba
  • nfs
  • NTFS

aquí hay un buen tutorial

tomodachi
fuente
Mientras que los autofs funcionarían si la red fuera accesible algunas veces. Solo es accesible cuando estoy conectado a la VPN.
Mark D