Можно ли автоматически монтировать 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.


Это кажется лучшим способом сделать это. Однако я не могу добраться 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

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


В то время как autofs будет работать, если сеть будет доступна в течение некоторого времени. Это возможно только тогда, когда я подключен к VPN.
Марк Д
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.