воскресенье, 30 марта 2008 г.

Монтируем удаленную файловую систему через SSH

Взято с habrahabr

Во время работы часто приходится работать с удаленными файлами, часто через ssh. Gnome позволяет подключиться и работать с данными с помощью утилиты Places->Connect to Server, но, к сожалению, таким образом могут работать не все программы... Vim, например, а так как это основной мой редактор — я искал способ сделать это. И нашел :)


Все, что написано дальше — касается Linux, в частности Ubuntu Linux.
Итак, способ : смонтировать удаленую систему так же, как вы монтируете локальные диски. Сделать такое возможно с поомщью утилиты sshfs.
Для начала надо ее установить вместе с несколькими зависимостями:

$sudo apt-get install sshfs

Потом нужно добавить себя в группу пользователей fuse. Сделать это надо, потому что программа устанавливвается в системные папки, в которые обычным пользователям доступ запрещен. Так, добавляем себя в группу:

$sudo adduser <Пользователь> fuse

Потом создаем директорию для монтирования, например, на рабочем столе:

$mkdir ~/Desktop/test_ssh

Теперь надо выйти с терминала и зайти вновь. Все, теперь мы в группе fuse. Пробуем соединиться с сервером:

$sshfs user@example.com:/stuff ~/Desktop/test_ssh

Если соединение идет не по ключу то, скорее всего, у вас появится запрос на введение пароля с удаленной машины.
Если же вы сразу не получили ошибку fusermount: fuse device not found, try ‘modprobe fuse’ first — проверяйте директорию, там должны появиться файлики :). Если же вылезла ошибка — значит модуль ядра fuse не загрузился автоматом, пробуем загрузить вручную:

$sudo modprobe fuse

Пробуем установить соединение еще раз.
Чтобы отмонтировать это все дело, надо выполнить следующее:

$fusermount -u ~/Desktop/test_ssh

Чтобы каждый раз не вводить такую кучу комманд - создаем(если нету) и редактируем файл ~/.bash_aliases, добавляя в конец такие строчки:


alias testssh='sshfs user@example.com:/stuff ~/Desktop/test_ssh'
alias testssh_umount='fusermount -u ~/Desktop/test_ssh'


Теперь вы сможете монтировать удаленную машину командой testssh, а размонтировать — testssh_umount :)

Комментариев нет: