Сегодня мы поговорим о файловой системе 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/
- Скачаем последнюю версию OSXFUSE.
На момент написания статьи версия OSXFUSE 2.5.4, DMG которого можно скачать по ссылке https://github.com/downloads/osxfuse/osxfuse/OSXFUSE-2.5.4.dmg.
Откроем DMG пакет и нажмем Install OSXFUSE 2.5.
Установим OSXFUSE, как любое другое приложение.
ВАЖНО: при выборе компонент установки поставить галку «MacFUSE Compatibility Layer».
- Скачаем пакет SSHFS.
На момент написания статьи версия SSHFS 2.4.1., скачать можно по ссылке https://github.com/downloads/osxfuse/sshfs/SSHFS-2.4.1.pkg.
Установим пакет SSHFS.
Теперь нам понадобится приложение MacFusion, последнюю версию которого мы можем взять с официального сайта http://macfusionapp.org/.
Скачаем и распакуем его в папку Программы.
Запустим Macfusion, откроется подобное окно.
При первом запуске он спросит, хотим ли мы запускать его как сервис. Я обычно соглашаюсь, так как хочу получать автомонтирование.
Нажмем на + слева внизу, выберем SSHFS.
Укажем имя подключения,хост, логин, пароль и домашнюю директорию. После заполнения полей нажмем OK.
Нажмем Mount на появившемся соединении.
Перейдем по пути /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 клиент.
- Установим необходимые пакеты:
|
|
- Подгрузим поддержку fuse в ядро через modprobe.
|
|
- Убедимся, что fuse успешно подгружен через сообщения ядра.
|
|
На выходе мы должны получить что-то типа этого:
[ 409.252165] fuse init (API version 7.13)
- Создадим директорию, в которую будем монтировать SSHFS.
|
|
Примонтируем SSHFS в директорию.
|
|
Насладимся полученным результатом.
Отмонтируем SSHFS.
|
|
Для настройки монтирования через fstab, пропишем следующую строку:
|
|
sshfs#admin@SITE:/mnt/sshfs-test /home fuse 0 0
Этот способ заработает, только если для пользователя, под которым будет происходить монтирование, будет использоваться аутентификация по сертификату (в примере admin). О том, как реализовать аутентификацию по сертификату, вы можете почитать в моей статье SSH. Великий и могучий.
На этом все, спасибо за внимание.
Смотрите также
- Как добавить постоянные статические маршруты (persistent static routes) в Mac OS X.
- Знакомство с CMake. Часть 3. CMakeCache, модули CMake, зависимости сборки.
- maybe? Интересная песочница для отладки операций с файлами в скриптах Linux.
- Знакомство с CMake. Часть 2. Переменные, условия, сообщения, опции.
- Знакомство с CMake. Часть 1. Установка, CMakeLists.txt, сборка.