SSHFS (Secure Shell File System)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:37, 19 июля 2016.
SSHFS
SSHFS.jpg
Разработчики: Nikolaus Rath, Miklos Szeredi
Постоянный выпуск: 2.7 / 1 March 2016 года; 3 years ago (2016-03-01)
Состояние разработки: Active
Операционная система: UNIX-like
Тип ПО: Remote desktop software
Веб-сайт https://github.com/libfuse/sshfs

SSHFS (англ. Secure SHell File System) это файловая система для Linux для взаимодействия с каталогами и файлами, расположенными на удаленном сервере через обычного соединения SSH (точнее, его расширение SFTP), причем файлы выглядят и реагируют точно так, как если бы находились на локальном компьютере. SSHFS также доступен и для других операционных систем, для которых существует реализация FUSE (File System in Userspace).

Классической альтернативой для доступа к удаленной файловой системе это NFS и SMBFS.

Основные преимущества SSHFS:

  • Простота установки и запуска
  • Безопасность

Для Ubuntu

Чтобы создать сеть SSHFS, вам будет достаточно двух компьютеров, подсоединённых к одному роутеру или шлюзу. В Ubuntu есть всё необходимое, однако, на оба компьютера требуется установить ещё две программы, которые есть в репозиториях.

Как это сделать? В меню выберите Система > Администрирование > Менеджер пакетов Synaptic и установите следующие пакеты: sshfs и openssh-server. Также в Synaptic проверьте, что openssh-client установлен (обычно в Ubuntu уже есть).

Откройте меню Система > Администрирование > Пользователи и группы > Разблокировать > Управление группами.

Добавьте группу fuse. Создайте пустую папку в вашей корневой директории (Ctrl+Shift+N), назовите её отлично от такой же папки другого пользователя, чтобы избежать недоразумений. Этим завершается подготовка сетевого инструментария.

Чтобы запустить сеть, вам нужно включить SSHFS и указать, откуда файлы брать и куда их сохранять (та папка, которую вы только что создали) – Перейдите в Приложения > Стандартные > Терминал и введите:

sshfs remoteusername@remotepc:/home/remoteusername ~/newfolder

или, так как SSHFS использует домашнюю папку пользователя как место по-умолчанию, вы можете сократить команду:

sshfs remoteusername@remotepc: ~/newfolder

Программа запросит у вас пароль к удалённому компьютеру (его пароль, не ваш), чтобы подтвердить, что вы имеете право доступа, и при первом запуске подтвердить другой компьютер. После чего соединение будет установлено, и у вас появится соответствующая иконка. Вы сможете открыть домашнюю папку другого пользователя просто кликнув по этой иконке в вашей домашней папке. Далее вы сможете копировать, перемещать, редактировать и удалять файлы так, как будто они на вашем компьютере. Документы, защищённые паролем, останутся также под паролем. Сеть SSHFS односторонняя, что означает, каждый компьютер индивидуально соединён с другим. Если вы подключитесь к другому компьютеру, с того невозможно будет увидеть ваши файлы, не установив своего соединения.

Чтобы отсоединить ваш компьютер от сети, введите в терминале:

fusermount -u ~/newfolder 

«-u» означает «unmount».

Для Debian

Первым делом нужно установить пакет SSHFS на локальной системе:

# apt-get install sshfs

Далее, убедитесь, что требование #1 выполнено. На локальной системе выполните команду (как root):

# modprobe fuse

После чего будет загружен модуль ядра FUSE. Кроме того, с этим модулем, SSHFS позволяет делать множество изящных трюков с файловой системой, такие как BitTorrent file system, Bluetooth file system, User-level versioning file system, CryptoFS, Compressed read-only file system и многие другие.

Согласно условию #2, OpenSSH сервер уже должен быть установлен и запущен на большинстве Debian системах. Если он не установлен, выполните следующую команду на удаленной системе.

# apt-get install ssh

Использование

К счастью, SSHFS очень прост в использовании. Следующая команда:

$ sshfs user@host: mountpoint

примонтирует домашнюю директорию аккаунта user@host в локальную директорию с менем mountpoint. Конечно же, подразумевается, что директория mountpoint уже существует и имеет соответствующие права доступа.

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

$ sshfs [user@]host:[dir] mountpoint [options]

Для Mac OS

Для Mac OS Google выпустил MacFUSE. MacFusion предлагает графический интерфейс для MacFUSE и архитектуру плагинов; плагины включают исполняемые файлы FTP и SSHFS из проекта MacFUSE.

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

Чтобы смонтировать каталог /path/to/directory на удаленном сервере remotehost от имени пользователя user в локальный каталог /local/path, нужно использовать команду:

sshfs user@remotehost:/path/to/directory /local/path

Для отключения используется команда

sudo umount -u /local/path

или для более ранних версий

fusermount -u /local/path

Подобные функции для операционных систем семейства Windows обеспечивает библиотека Dokan SSHFS, но она отличается реализацией и не основана на FUSE.

Ссылки