É possível montar automaticamente sshfs

10

É possível montar automaticamente um FS remoto usando sshfs ao instanciar uma conexão VPN adequada?

Permita-me explicar o cenário, estou trabalhando remotamente, para fazer isso de ajuda, se eu puder montar meu diretório pessoal a partir de um servidor no escritório. Para fazer isso, preciso conectar-me com VPN. Portanto, no gerenciador de rede, seleciono a VPN relevante e conecto. Ele se conecta, mas agora tenho que ir para a linha de comando e montar meu diretório pessoal em várias máquinas.

Se eu esquecer de fazer uma máquina, meu ambiente de desenvolvimento local não é tão eficiente. Suponho que eu poderia escrever um script bash rápido para fazer isso, mas prefiro executá-lo automaticamente quando eu conectar.

Mark D
fonte
@Seth Essa pergunta é duplicado deste;)
Radu Rădeanu
@ RaduRădeanu Essa questão é mais geral, portanto será mais útil para as pessoas no futuro.
Seth
Na verdade, mudei de idéia, são perguntas totalmente diferentes.
Seth

Respostas:

12

Encontre o UUID da sua conexão usando

$ nmcli con

Observe que isso lista não apenas as conexões físicas, mas também as conexões sem fio definidas (SSIDs).

Coloque um script simples como este em seu /etc/NetworkManager/dispatcher.d/diretório:

#!/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ão se esqueça de definir as permissões corretas para torná-lo permutável (ou seja chmod +x trigger-sshfs-on-vpn.sh). Pode ser qualquer tipo de script, provavelmente um script do Bash é suficiente para o seu propósito.

O NetworkManager apenas executa todos os scripts deste diretório, fornecendo algumas variáveis ​​de ambiente que você pode usar para criar scripts. Nesse caso, você provavelmente só precisa CONNECTION_UUID.

gertvdijk
fonte
Essa parece ser a melhor maneira de fazer isso. No entanto, não consigo mount -t sshfs user@host:/dir /home/myuser/dirtrabalhar, por isso tentei, sshfs hostname:?directory /home/myuser/dirmas isso também não parece funcionar. Alguma ideia?
Mark D
@ MarkD Seu problema surge apenas em um script de expedidor do NetworkManager? Caso contrário, faça outra pergunta para isso. E, por favor, seja mais específico sobre "não funciona".
gertvdijk
@gertvdijk E se eu usar a chave ssh prv para conectar e quiser ter as mesmas permissões que o usuário que executa o sshfs? significando, as permissões também funcionarão?
Confiq
1
@confiq Não, o NetworkManager executará este script como root. Como em qualquer outra chamada da raiz como usuário, use su. Por exemplo. su -l username -c 'mycommand'
precisa saber é o seguinte
1

Use autofs.

O Autofs montará automaticamente uma pasta configurada como um ponto de montagem quando alguém ou algo estiver acessando-o no seu sistema.

O ponto de montagem pode ser um host remoto através do sshfs, bem como um outro ponto de montagem arbitrário, como:

  • samba
  • nfs
  • NTFS

aqui está um bom howto

tomodachi
fonte
Enquanto os autofs funcionariam se a rede estivesse acessível durante algum tempo. Só é acessível quando estou conectado à VPN.
Mark D