Jak automatycznie zamontować za pomocą sshfs?


14

Korzystam z następującego polecenia, aby zamontować katalog ssh ubuntu na moim komputerze z systemem Ubuntu.

sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

Moje pytanie brzmi: czy mogę utworzyć skrypt dla tego na pulpicie, w którym mogę dwukrotnie kliknąć i uruchomić ten skrypt, ilekroć będę musiał zamontować dysk bez ręcznego wpisywania polecenia.

Odpowiedzi:


15

Możesz utworzyć program uruchamiający i dodać go do paska uruchamiania, przeciągając i upuszczając .desktoptam plik -file:

    #!/usr/bin/env xdg-open

    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Icon[en_US]=nautilus
    Name[en_US]=Connect to xy
    Exec=shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx
    #OR: to mount and than open in nautilus (note the '/dir' where ':dir' used to be)
    #Exec=nautilus sftp://user@192.xx.xx.xx.xx/dir/dir
    Comment[en_US]=Connect to xy via ssh
    Name=Connect to xy
    Comment=Connect to xy via ssh
    Icon=nautilus

Sugestia - jeszcze mniej pracy:

Jeśli chcesz jeszcze mniej pracy (= automatyczne połączenie) i graficzny interfejs użytkownika, możesz wypróbować Gigolo Zainstaluj gigolo . Ma możliwość automatycznego montowania zakładki, gdy obecny jest system plików z zakładkami. Możesz to sprawdzić.

sudo apt-get install gigolo   # or use the install link above

Uruchom gigolo. W preferencjach dostępna jest opcja, która uruchamia ją automatycznie, a druga aktywuje ikonę zasobnika. Sprawdź oba. Następnie dodaj swoją zakładkę.

Oto zrzut ekranu:

wprowadź opis zdjęcia tutaj

Sposób powłoki

Innym rozwiązaniem byłoby umieszczenie następującego wiersza w twoim crontabie (edycja /etc/crontabz uprawnieniami sudo):

@reboot sshfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

Ale ponieważ menedżer haseł Ubuntu nie jest obecny po uruchomieniu polecenia, musisz użyć pary kluczy prywatny / publiczny bez hasła do uwierzytelnienia na danym serwerze ssh (lub podobnej metodzie uwierzytelnienia). Spowodowałoby to zamontowanie go przy każdym ponownym uruchomieniu.

Jeszcze innym rozwiązaniem byłaby edycja /etc/fstab(pod warunkiem, że wersja Ubuntu zapewnia taką opcję).


1
Nie mogę używać Gigolo. Bo chcę użyć określonego punktu montowania w moim folderze domowym. Twoje pierwsze rozwiązanie wydaje się dobre. Ale nie mam jasności co do nazewnictwa plików. Dałeś „.desktop-file” Czy to nazwa pliku lub rozszerzenie. Podaj mi więcej przykładów nazywania plików. Następnie mogę spróbować.
BlueBird,

To rozszerzenie. Wszystkie programy uruchamiające w Ubuntu kończą się na „.desktop”. Utwórz pusty plik. Skopiuj tekst, który zamieściłem powyżej. Zamień tekst za „Name =” na dowolny, który ci odpowiada i zamień prawdziwe ścieżki w tekście za „Exec =”. Następnie zapisz go jako „connect.desktop” lub „mountxy.desktop” (na przykład). Po zapisaniu pliku przeciągnij i upuść go w panelu uruchamiania lub gdziekolwiek chcesz.
con-f-use

Świetny!! Zadziałało.
BlueBird,

8
OMG ... najgorsza nazwa dla programu.
Lekensteyn,

Najwyraźniej nie ma już opcji dodania gigolo do autostartu, więc będziesz musiał zrobić to sam. Uruchom gnome-session-propertiesi dodaj /usr/bin/gigolopolecenie. Nie można wybrać punktu montowania, ale można utworzyć symboliczne łącze do katalogu domowego (za pomocą ln -s). Możesz znaleźć oryginalny punkt montowania, klikając prawym przyciskiem myszy folder w menedżerze plików i wybierając Open in Local Terminal.
Seppo Enarvi

4

Ten wątek na forum pokazuje metodę tworzenia automatycznego montażu SSHFS, który wydaje mi się dokładnie tym, co chciałbyś zrobić.


Wątek jest dość stary i aby dodać montowanie zależne od sieci, możemy teraz używać x-systemdi _netdevopcji.
Turgon

3

Możesz po prostu wpisać to w skrypcie powłoki i możesz utworzyć dla niego program uruchamiający na pulpicie.

Na przykład mountssh.sh:

#!/bin/bash
shfs user@192.xx.xx.xx.xx:/dir/dir /home/username/mount/xxx

upewnij się, chmod +x mountssh.sha następnie kliknięcie go uruchomi się

Alternatywnie, można go zamontować poprzez gvfs, klikając prawym przyciskiem myszy na pulpicie, a tworzenie wyrzutnię z parametru URL: ssh://user@192.xx.xx.xx.xx/dir/dir. Domyślnie montuje się do ~/.gvfs/.... Jeśli chcesz trzymać się tego /home/username/mount/xxx, możesz utworzyć dowiązanie symboliczne z gvfs one do tego.


Plik „mount-192.168.1.5.sh” utworzyłem na pulpicie. Po dwukrotnym kliknięciu otwiera się za pomocą gedit.
BlueBird,

Musisz utworzyć ten plik sh z uprawnieniami do wykonywania w dowolnym miejscu i utworzyć program uruchamiający na pulpicie, który wskazuje na ten plik .sh.
Iradrian

2

Możesz nawet pójść o krok dalej i autofs zajmie się montażem za Ciebie. Ponieważ autofs nie działa szczególnie dobrze z uwierzytelnianiem klucza publicznego SSH (chyba że chcesz utworzyć parę kluczy bez hasła dla administratora ), istnieją narzędzia, które pozwalają na użycie kluczy SSH użytkownika, ssh-agent i pęku kluczy:


0

Montuję folder dokładnie w ten sam sposób, a ja stworzyłem niestandardowy program uruchamiający, który wskazuje .shplik zawierający polecenie. Po prostu upewnij się, że plik ma uprawnienia do wykonywania i możesz już iść.

Po prostu klikam program uruchamiający:

wprowadź opis zdjęcia tutaj


0

Próbowałem użyć crona do automatycznego zamontowania katalogu ssh, ale powoduje to błąd Network is unreachable. Jest tak, ponieważ wykonywanie zadania cron jest zbyt wczesne, aby ustanowić połączenia ip. Po tym, jak wstawiłem tryb uśpienia przed sshfspoleceniem, z powodzeniem montuje on katalog ssh.

sleep 5 && sshfs ......

Dlatego stworzyłem ten skrypt, aby spełnić moje wymagania.

#! /bin/sh
while true
do 
    ping -c1 -w1 ssh_server_ip > /dev/null && break
done
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 sshname:/mountpath /localmountpath
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.