Используем SSHFS в Linux и Mac OS X.

Сегодня мы поговорим о файловой системе Secure Shell FileSystem (сокращенно SSHFS) благодаря которой мы сможем использовать удаленное управление файлами, при этом делать этом соблюдая безопасность, так как подключение будет осуществляться через SFTP, который в свою очередь работает через SSH. Мы рассмотрим работу с SSHFS в Linux и Mac OS X. Сразу замечу тот факт, что при нестабильном соединении можно будет столкнуться с проблемами, так как основное предназначение SSH, это не гарантированность соединения, а безопасность.

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

SSHFS в Mac OS X.

Дано:

  • Удаленный сервер с SSH, к которому мы хотим подключиться.
  • Mac OS X > 10.5.

Для начала нам поддержка FUSE. Раньше я использовал MacFUSE от Google, но он перестал обновляться, так что теперь мое внимание направлено на более динамичную разработку — FUSE for OS X, которая и позиционируется, как продолжение MacFUSE.

Все необходимое мы возьмем с официального сайта на гите http://osxfuse.github.com/

  1. Скачаем последнюю версию OSXFUSE.

На момент написания статьи версия OSXFUSE 2.5.4, DMG которого можно скачать по ссылке https://github.com/downloads/osxfuse/osxfuse/OSXFUSE-2.5.4.dmg.

  1. Откроем DMG пакет и нажмем Install OSXFUSE 2.5.

  2. Установим OSXFUSE, как любое другое приложение.

ВАЖНО: при выборе компонент установки поставить галку «MacFUSE Compatibility Layer».

  1. Скачаем пакет SSHFS.

На момент написания статьи версия SSHFS 2.4.1., скачать можно по ссылке https://github.com/downloads/osxfuse/sshfs/SSHFS-2.4.1.pkg.

  1. Установим пакет SSHFS.

  2. Теперь нам понадобится приложение MacFusion, последнюю версию которого мы можем взять с официального сайта http://macfusionapp.org/.

  3. Скачаем и распакуем его в папку Программы.

  4. Запустим Macfusion, откроется подобное окно.

При первом запуске он спросит, хотим ли мы запускать его как сервис. Я обычно соглашаюсь, так как хочу получать автомонтирование.

  1. Нажмем на + слева внизу, выберем SSHFS.

  2. Укажем имя подключения,хост, логин, пароль и домашнюю директорию. После заполнения полей нажмем OK.

  1. Нажмем Mount на появившемся соединении.

  2. Перейдем по пути /Volumes и увидим наше подключение.

СОВЕТ: Если вы ходите на удаленный сервер через сертификат, то для подключения будет использоваться именно он, игнорируя связку User Name/Password.

Распространенная проблема: соединение не устанавливается, жалуется на непредвиденную ошибку.

Решение: Нажмите CMD+L. Откроется лог. Если вы увидите ошибку «Library not loaded: /usr/local/lib/libfuse.0.dylib», значит при установке OSXFUSE вы забыли поставить галку «MacFUSE Compatibility Layer». Заново запустите установку и поставьте галку. После этого проблема будет решена.

Управление подключениями SSHFS так-же возможно через командную строку, но в рамках этой статьи я не буду рассказывать про это, так как, в отличие от серверов, на десктопах не гнушаюсь GUI.

SSHFS в Linux на примере Debian и Ubuntu.

В отличие от первой части статьи, в которой мы подключали SSHFS без использования консоли, потребность в SSHFS для Linux часто возникает на серверах, так что здесь мы все будем делать исключительно через консоль.

Нам потребуется:

  • Linux (в примере использован Debian, точно так-же все настраивается в Ubuntu)
  • OpenSSH клиент.
  1. Установим необходимые пакеты:
1
apt-get install fuse-utils sshfs
  1. Подгрузим поддержку fuse в ядро через modprobe.
1
modprobe fuse
  1. Убедимся, что fuse успешно подгружен через сообщения ядра.
1
dmesg |grep fuse

На выходе мы должны получить что-то типа этого:

[ 409.252165] fuse init (API version 7.13)
  1. Создадим директорию, в которую будем монтировать SSHFS.
1
mkdir /mnt/sshfs-test

Примонтируем SSHFS в директорию.

1
sshfs admin@SITE.COM:/ /home/
  1. Насладимся полученным результатом.

  2. Отмонтируем SSHFS.

1
fusermount -u /mnt/sshfs-test/

Для настройки монтирования через fstab, пропишем следующую строку:

1
nano /etc/fstab
sshfs#admin@SITE:/mnt/sshfs-test /home fuse 0 0

Этот способ заработает, только если для пользователя, под которым будет происходить монтирование, будет использоваться аутентификация по сертификату (в примере admin). О том, как реализовать аутентификацию по сертификату, вы можете почитать в моей статье SSH. Великий и могучий.

На этом все, спасибо за внимание.


Смотрите также

comments powered by Disqus