Як автоматично монтувати за допомогою sshfs?


14

Я використовую наступну команду для монтажу каталогу ssh ubuntu до мого ПК ubuntu.

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

Моє запитання полягає в тому, чи можу я створити для цього сценарій на своєму робочому столі, де я можу зробити подвійний клік та запустити цей сценарій, коли мені потрібно буде монтувати диск, не вводячи команду завжди вручну.

Відповіді:


15

Ви можете створити панель запуску та додати її до панелі запуску, перетягнувши .desktopтуди -файл:

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

Пропозиція - ще менше роботи:

Якщо ви хочете ще менше роботи (= автоматичне підключення) та графічний інтерфейс користувача, ви можете перевірити Gigolo Встановити gigolo . Він має можливість автоматичного монтажу закладок, коли є наявна файлова система закладок. Ви можете перевірити це.

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

Біжи gigolo. У налаштуваннях є опція, яка вводить її в режим автоматичного запуску, а інша - для активації піктограми лотка. Перевірте обидва. Потім додайте закладку.

Ось скріншот:

введіть тут опис зображення

Шелловий шлях

Іншим рішенням буде ввести наступний рядок у свій crontab (редагувати /etc/crontabз привілеями sudo):

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

Але оскільки при запуску команди менеджер паролів Ubuntu відсутній, вам потрібно використовувати пару приватних / відкритих ключів, які не захищені паролем, для автентифікації з відповідним сервером ssh (або подібним методом аутентифікації). Це зможе встановити його при кожному перезавантаженні.

Ще одним рішенням буде редагування вашого /etc/fstab(за умови, що ваша версія Ubuntu надає цю опцію).


1
Я не можу використовувати жиголо. Тому що я хочу використовувати певну точку монтажу в домашній папці. Ваше перше рішення здається гарним. Але мені не зрозуміло щодо іменування файлів. Ви дали ".desktop-файл" Це ім'я файлу чи розширення. Надайте, будь ласка, більше прикладів щодо іменування файлів. Тоді я можу спробувати.
BlueBird

Це розширення. Усі пускові установки в ubuntu закінчуються ".desktop". Створіть порожній файл. Скопіюйте в неї текст, який я розмістив вище. Замініть текст позаду "Ім'я =" на те, що вам підходить, і замініть реальні шляхи в тексті за "Exec =". Потім збережіть його як "connect.desktop" або "mountxy.desktop" (наприклад). Після збереження файлу перетягніть його на панель запуску або куди завгодно.
con-f-use

Чудово !! Це спрацювало.
BlueBird

8
OMG ... найгірше ім'я для програми.
Лекенштейн

Мабуть, більше немає можливості додавати gigolo до автоматичного запуску, тому вам доведеться це зробити самостійно. Запустити gnome-session-propertiesта додати /usr/bin/gigoloкоманду. Вибрати точку монтажу неможливо, але ви можете створити символічне посилання на домашній каталог (з ln -s). Ви можете знайти початкову точку монтажу, клацнувши правою кнопкою миші папку в файловому менеджері та вибравши Open in Local Terminal.
Seppo Enarvi

4

Цей потік форуму показує метод створення автоматичного SSHFS, який мені здається саме тим, що ви хотіли б зробити.


Потік досить старий, і щоб додати монтування, залежне від мережі, ми тепер можемо використовувати x-systemdта _netdevпараметри.
Тургон

3

Ви можете просто ввести це в скрипт оболонки, а ви можете створити його для запуску на робочому столі.

Наприклад mountssh.sh:

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

переконайтеся в цьому, chmod +x mountssh.shа потім натиснувши його, буде виконано

Крім того , ви можете встановити його з допомогою GVFS, клацнувши правою кнопкою миші на робочому столі, а також створення ракети - носія з параметром URL: ssh://user@192.xx.xx.xx.xx/dir/dir. За замовчуванням він монтується до ~/.gvfs/.... Якщо ви хочете дотримуватися /home/username/mount/xxx, ви можете створити символьне посилання з gvfs один до цього.


Я створив файл "mount-192.168.1.5.sh" на своєму робочому столі. Коли я двічі клацну по ньому, він відкривається за допомогою gedit.
BlueBird

Ви повинні створити цей sh-файл з виконуваними привілеями будь-де та створити на своєму робочому столі запуск, який вказує на цей .sh-файл.
Ірадріан

2

Ви навіть можете зробити це на крок далі і автори потурбуватися про встановлення для вас. Оскільки аутентифікація не дуже добре працює з аутентифікацією відкритого ключа SSH (якщо ви не хочете створити паролю ключів для суперпользователя ), є інструменти, які дозволяють використовувати ключі SSH користувача, ssh-агент та брелок користувача:

  • autosshfs : для користувача SSHFS автоматично встановлюється за допомогою конфігурації SSH користувача
  • afuse : автоматичний інструмент, реалізований з FUSE

0

Я монтую папку точно так само, що я і робив, це створити власну .shпанель запуску, яка вказує на файл, що містить команду. Просто переконайтеся, що файл має дозвіл на виконання, і вам добре працювати.

Я просто натискаю на пускову установку:

введіть тут опис зображення


0

Я намагався використовувати cron, щоб автоматично монтувати ssh каталог, але це викликає помилку Network is unreachable. Це тому, що виконання завдань cron занадто рано для встановлення ip-зв’язків. Після того, як я вставив сон перед sshfsкомандою, він успішно змонтував ssh-каталог.

sleep 5 && sshfs ......

Тому я зробив цей сценарій, щоб виконати мою вимогу.

#! /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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.