Доступ к удалённым файлам: SSHFS






Методов доступа к файлам, расположенным на удалённой системе, придумано великое множество.  FTP, NFS, SMB/CIFS... Среди всего многообразия протоколов, ориентированных на передачу файлов, думаю, многим известен SFTP — FTP-подобный протокол поверх SSH. Удобная штука, учитывая тот факт, что на большинстве хостов чаще всего сегодня встретишь  поднятый OpenSSH-сервер, нежели FTP с поддержкой SSL или, тем более, VPN. Итак, SFTP безопасен, доступен, удобен. Хотя, с последним утверждением вряд ли согласятся те, кто кто хоть раз пробовал скопировать пару десятков файлов при помощи «родного» sftp-клиента. Чего только стоит отсутствие автодополнения в командной оболочке! Да, есть FTP-клиенты, избавляющие от этого геморроя, вроде yafc, однако согласитесь, куда удобней смонтировать удалённую ФС, а-ля NFS и, запустив Midnight Commander, получать удовольствие. Итак, сегодня речь пойдёт об SSHFS — FUSE-ФС, использующей SFTP в качестве транспорта.


Установка

Для корректной работы SSHFS вам понадобится присутствие в системе модуля ядра FUSE, обеспечивающего в целом возможность работы виртуальных файловых систем в пользовательском пространстве. В большинстве стандартных поставок дистрибутивов этот модуль присутствует и если вы только не собирали ядро сами, то беспокоиться не очем — модуль должен быть. Если пересобирали ядро — убедитесь, что не забыли о FUSE, без него никак.

Далее, необходимо установить саму SSHFS. В моей Ubuntu 10.10 пакет имеет одноимённо название и легко установился командой:

Думаю, в вашем дистрибутиве пакет должен называться так же или примерно так.

Монтирование

Представим вам необходимо смонтировать удалённый каталог /home/vasya/documents, находящийся на сервере pupkin.com. Точкой монтирования на локальной системе будет каталог /home/vasya/mounts/documents. Имя пользователя, от имени которого подключаемся к удалённой системе — vasya (неожиданно). Итак, монтируем:

На приглашение ввести пароль отвечаем, естественно, вводом пароля и если всё правильно — вуаля, получаем прозрачный доступ к удалённой ФС.

Отключение

Для того, чтобы отмонтировать FUSE-ФС, umount не подойдёт, поскольку вам понадобятся привилегии  root (можно конечно sudo, если вы администратор системы, однако, на мой взгляд, сие идеологически неверно). Пользуемся специально предназначенной для этого утилитой (предварительно, естественно, закрыв все используемые файлы на отключаемой ФС):

Опции

Опций у sshfs довольно много, чтобы их все здесь рассматривать. Что частенько встречается, так это нестандартный порт SSH, который многие администраторы выбирают из соображений безопасности системы. Если это ваш случай, то переопределить номер порта для подключения к SSH можно при помощи опции -p:

Также, частенько можно и нужно включить сжатие (если оно не включается у вас по умолчанию настройками  SSH-клиента):

Ещё иногда при ненадёжных соединениях бывает полезен синхронный режим записи:

Литература




Доступ к удалённым файлам: SSHFS: 2 комментария

  1. у анона прекрасно работает автодополнение в sftp сессии

    просто нормально настроен шелл

Комментарии запрещены.