Czy można automatycznie zamontować sshfs


10

Czy jest możliwe automatyczne zamontowanie zdalnego FS przy użyciu sshfs po utworzeniu odpowiedniego połączenia VPN?

Pozwól mi wyjaśnić scenariusz, pracuję zdalnie, aby to zrobić, pomaga mi zamontowanie katalogu domowego z serwera w biurze. Aby to zrobić, potrzebuję VPN. Więc w menedżerze sieci wybieram odpowiednią VPN i łączę się. Łączy się, ale teraz muszę przejść do wiersza poleceń i zamontować katalog domowy na kilku komputerach.

Jeśli zapomnę zrobić jedną maszynę, moje lokalne środowisko programistyczne nie będzie tak wydajne. Przypuszczam, że mógłbym napisać szybki skrypt bash, aby to zrobić, ale wolałbym, aby działał automatycznie po połączeniu.



@Seth To pytanie jest duplikatem tego;)
Radu Rădeanu

@ RaduRădeanu To pytanie jest bardziej ogólne, więc będzie bardziej pomocne dla ludzi w przyszłości.
Seth

Właściwie zmieniłem zdanie, to są zupełnie inne pytania.
Seth

Odpowiedzi:


12

Znajdź UUID swojego połączenia za pomocą

$ nmcli con

Zauważ, że zawiera to nie tylko fizyczne połączenia, ale także zdefiniowane połączenia bezprzewodowe (SSID).

Umieść w /etc/NetworkManager/dispatcher.d/katalogu jakiś prosty skrypt :

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

Nie zapomnij ustawić odpowiednich uprawnień, aby można go było wytłumaczyć (tj chmod +x trigger-sshfs-on-vpn.sh.). Może to być dowolny rodzaj skryptu, prawdopodobnie skrypt Bash jest wystarczający do twojego celu.

NetworkManager po prostu wykonuje wszystkie skrypty w tym katalogu, zapewniając pewne zmienne środowiskowe, których można użyć do tworzenia skryptów. W takim przypadku prawdopodobnie potrzebujesz CONNECTION_UUID.


To wydaje się najlepszym sposobem na zrobienie tego. Jednak nie mogę dostać się mount -t sshfs user@host:/dir /home/myuser/dirdo pracy, więc próbowałem, sshfs hostname:?directory /home/myuser/dirale to też nie działa. Jakieś pomysły?
Mark D

@MarkD Czy Twój problem występuje tylko w skrypcie dyspozytora NetworkManager? Jeśli nie, możesz zadać kolejne pytanie. I proszę bardziej szczegółowo o „nie działa”.
gertvdijk

@gertvdijk Co jeśli używam klucza ssh prv do łączenia i chcę mieć takie same uprawnienia jak użytkownik uruchamiający sshfs? Czy uprawnienia też będą działać?
konfiq

1
@confiq Nie, NetworkManager uruchomi ten skrypt jako root. Podobnie jak w przypadku innych wywołań użytkownika root jako użytkownik, użyj su. Na przykład. su -l username -c 'mycommand'
gertvdijk

1

Używaj autofs.

Autofs automatycznie zamontuje folder, który jest skonfigurowany jako punkt montowania, gdy ktoś lub coś uzyskuje do niego dostęp w twoim systemie.

Punkt podłączenia może być hostem zdalnym za pośrednictwem sshfs, a także dowolnym innym punktem podłączenia, takim jak:

  • samba
  • nfs
  • NTFS

tutaj jest fajne howto


Podczas gdy autofs działałby, gdyby sieć była osiągalna przez pewien czas. Jest dostępny tylko wtedy, gdy jestem podłączony do VPN.
Mark D
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.