Можно ли автоматически монтировать sshfs

10

Можно ли автоматически смонтировать удаленную FS с помощью sshfs при создании правильного VPN-соединения?

Позвольте мне объяснить сценарий, я работаю удаленно, чтобы это помогло, если я смогу смонтировать мой домашний каталог с сервера в офисе. Для этого мне нужно войти в систему. Поэтому в диспетчере сети я выбираю соответствующий VPN и подключаюсь. Он подключается, но теперь мне нужно зайти в командную строку и смонтировать мой домашний каталог на нескольких машинах.

Если я забуду сделать одну машину, моя локальная среда разработки будет не столь эффективной. Я полагаю, что я мог бы написать быстрый скрипт bash для этого, но я бы предпочел, чтобы он запускался автоматически при подключении.

Марк Д
источник
@Seth Этот вопрос дублирует этот;)
Раду Рэдяну
@ RaduRădeanu Этот вопрос носит более общий характер, поэтому в будущем он будет более полезным для людей.
Сет
На самом деле, я передумал, это совершенно разные вопросы.
Сет

Ответы:

12

Найдите UUID вашего соединения, используя

$ nmcli con

Обратите внимание, что здесь перечислены не только физические соединения, но и определенные беспроводные соединения (SSID).

Поместите какой-нибудь простой скрипт в /etc/NetworkManager/dispatcher.d/каталог:

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

Не забудьте установить правильные разрешения, чтобы сделать его исполняемым (то есть chmod +x trigger-sshfs-on-vpn.sh). Это может быть любой тип сценария, сценария Bash, вероятно, достаточно для вашей цели.

NetworkManager просто выполняет все сценарии в этом каталоге, предоставляя некоторые переменные среды, которые вы можете использовать для сценариев. В этом случае вам, вероятно, просто нужно CONNECTION_UUID.

gertvdijk
источник
Это кажется лучшим способом сделать это. Однако я не могу добраться mount -t sshfs user@host:/dir /home/myuser/dirдо работы, поэтому я попытался, sshfs hostname:?directory /home/myuser/dirно это тоже не сработало. Есть идеи?
Марк Д
@MarkD Ваша проблема возникает только в сценарии диспетчера NetworkManager? Если нет, то вы можете задать еще один вопрос для этого. И, пожалуйста, будьте более конкретны по поводу "не работает".
gertvdijk
@gertvdijk Что, если я использую ssh prv key для подключения и хочу иметь те же права, что и у пользователя, запускающего sshfs? значит, разрешения тоже будут работать?
Confiq
1
@confiq Нет, NetworkManager запустит этот скрипт как root. Как и при любом другом вызове от пользователя root, используйте su. Например. su -l username -c 'mycommand'
gertvdijk
1

Используйте autofs.

Autofs автоматически монтирует папку, которая настроена как точка монтирования, когда кто-то или что-то обращается к ней в вашей системе.

Точкой монтирования может быть удаленный хост через sshfs, а также произвольная другая точка монтирования, такая как:

  • самба
  • NFS
  • NTFS

вот хорошая инструкция

Tomodachi
источник
В то время как autofs будет работать, если сеть будет доступна в течение некоторого времени. Это возможно только тогда, когда я подключен к VPN.
Марк Д