WebDesign Master
Курсы
Самый удобный способ работы с файлами хостинга на macOS (sshfs + Automator)
Инструменты

Самый удобный способ работы с файлами хостинга на macOS (sshfs + Automator)

Всем привет, друзья! Сегодня мы рассмотрим удобнейший способ работы с файловой системой удалённого веб-сервера или хостинга с помощью sshfs на macOS. Сама программа sshfs является linux-приложением, поэтому вы без труда сможете использовать данное руководство в системе Linux и подобных, имеющих реализацию FUSE. Благодаря данному руководству вы сможете настроить автоматическое подключение файловой системы вашего веб-сервера к компьютеру и работать с файлами так быстро, как будто работаете с файлами вашей собственной файловой системы. Скорость работы будет ограничиваться только скоростью вашего интернет-соедиения.

Поделиться
Твитнуть
Поделиться
Класснуть
Запинить
Самый удобный способ работы с файлами хостинга на macOS (sshfs + Automator) - Видеоурок
Смотреть урок на YouTube
Создание контентного сайта на Jekyll от А до Я

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

Для начала необходимо настроить SSH аутентификацию по открытому ключу. Как это сделать мы рассматривали в одном из наших предыдущих уроков «Rsync - молниеносный деплой средних и крупных проектов», раздел «1.2 Настройка SSH Аутентификации по открытому ключу». Для удобства, я продублирую это руководство в данной статье.

Настройка SSH Аутентификации по открытому ключу

Создайте директорию для SSH, в том случае, если она ещё не создана (знак доллара копировать не нужно):

$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh

Зайдите в созданную папку и сгенерируйте ключ (на все вопросы - жмём Enter):

$ cd ~/.ssh
$ ssh-keygen

Скопируйте получившийся ключ id_rsa.pub на ваш хостинг или сервер:

$ scp -p id_rsa.pub sshusername@yousite.com:~

Подключитесь к удалённому серверу для внесения нового ключа в authorized_keys:

$ ssh sshusername@yousite.com
Password:

Если директория ещё не существует, создайте её и установите соответствующие права:

RemoteServer~$ mkdir -p ~/.ssh
RemoteServer~$ chmod 700 ~/.ssh

Скопируйте сгенерированный ключ в специальный файл доступа 'authorized_keys' и установите на него безопасные права:

RemoteServer~$ cat id_rsa.pub >> ~/.ssh/authorized_keys
RemoteServer~$ chmod 600 ~/.ssh/authorized_keys

Удалите скопированный в корень вашего пользователя ключ, который уже добавили в общий файл и завершите вашу сессию командой logout:

RemoteServer~$ rm -f ~/id_rsa.pub
RemoteServer~$ logout

Далее нам остаётся только добавить закрытый ключ в агент аутентификации на локальном компьютере:

$ ssh-add

Если вы не получили сообщения вида "Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)", а получили оведомление вроде такого: "Could not open a connection to your authentication agent.", то следует запустить агента командой eval:

$ eval `ssh-agent -s`

И заново запустите ssh-add. Теперь вы можете пользоваться SSH на вашем компьютере, а в том числе и rsync, который использует SSH без авторизации в автоматическом режиме. Попробуйте подключиться снова к вашему серверу по SSH и убедитесь, что от вас не требуется ввести пароль. В противном случае, если пароль всё-таки требуется ввести, повторите процедуру получения SSH ключа заново.

Установка sshfs в macOS

Для установки sshfs в macOS нам понадобится менеджер пакетов Homebrew. Для его установки перейдите на страницу Homebrew и выполните инструкции по его установке, которая сводятся к открытию терминала и выполнения одной команды:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)»
Процесс установки Homebrew может занять довольно продолжительное время из-за установки инструментов командной строки Xcode.

По завершении установки менеджера пакетов Homebrew можно приступать к установке sshfs. Для этого последовательно выполните в терминале следующие команды:

$ brew cask install osxfuse
$ brew install sshfs

Отлично! Sshfs установлен.

Давайте создадим в папке «Документы» папку «SERVER», к которой и будем подключать файловую систему нашего хостинга.

Если с данной задачей вы справились, можно смело двигаться дальше.

Использование sshfs довольно элементарно. Все действия производятся в терминале (Все данные замените на ваши, такие, как доступ к серверу и имя пользователя):

$ sshfs username@youhost.ru:/path/to/user/ /Users/Username/Documents/SERVER/

Как видим, команда элементарна. Сначала мы выполняем программу «sshfs», после чего задаём параметры подключения к серверу формата логин@ваш-хост:/путь/до/вашего/аккаунта (пробел) /Путь/До/Вашей/Локальной/Папки/SERVER

Однако эта команда нуждается в дополнительных параметрах. Во-первых, нам необходимо, чтобы по истечении определённого таймаута наш удалённый сервер не отрубился и всегда был в коннекте. Для этого существует параметр «reconnect». Все параметры пишем через запятую после определения «-o».

В результате наша команда будет выглядеть следующим образом:

$ sshfs username@youhost.ru:/path/to/user/ /Users/Username/Documents/SERVER/ -o reconnect

Отлично, теперь мы имеем подключённую файловую систему вашего хостинга, которая постоянно будет подключена и никогда не «отрубится» благодаря параметру reconnect.

Однако пользователи macOS заметят одну неприятную особенность работы sshfs, в отличие от пользователей Linux - подключение будет медленное, переход по папкам будет медлителен и в целом работа будет не очень шустрая.

Всё дело в том, что работа программы sshfs в macOS несколько отличается от работы в Linux и здесь не обойтись без дополнительных параметров кеширования и сжатия.

Вот полная команда со всеми параметрами:

$ sshfs username@youhost.ru:/path/to/user/ /Users/Username/Documents/SERVER/ -o reconnect,auto_cache,defer_permissions,noappledouble,Compression=no -ovolname=SERVER

Здесь мы видим, что окромя «reconnect» появились и другие параметры, которые мы перечисляем через запятую. Именно эти параметры и явное отключение компрессии в конце сета параметров и сделают наше подключение и работу с файлами сервера или хостинга молниеносным, как солёные огурчики с молоком.

Обратите внимание, что у нас в конце появился ещё один параметр «-ovolname=SERVER», который просто определяет имя нашего подключения. Название нашей папки, которую мы создали в Документах при подключении поменяется именно на это название, поэтому не вижу смысла задавать другое значение данному параметру.

Автоматизация подключения при загрузке системы

Всё, наша команда готова. Осталось только автоматизировать подключение при загрузке системы. Для этого нам понадобится приложение «Automator», которое вы с лёгкостью найдёте в вашем Launchpad на macOS.

В открывшемся окне выберем создание нового документа:

Automator в macOS

Далее выбираем тип для документа «Программа»:

Выбираем тип - программа

Далее в поле поиска вбиваем «скрипт» и выбираем пункт «Запустить Shell-скрипт».

Создаём скрипт для автоматического подключения хостинга

После чего откроется панель, в которой уже будет тестовый первый скрипт, выполняющий команду «cat». Убираем «cat» и пишем нашу команду, которую мы определили ранее:

Пишем наш скрипт для монтирования файловой системы хостинга

Обратите внимание, что системный вызов команды «sshfs» мы заменили на прямой «/usr/local/bin/sshfs». Дело в том, что Shell-обработчик Автоматора не видит установленной программы в системе и нужно писать полный путь до нашего sshfs.

Теперь осталось только запустить наш скрипт и сохранить программу в любое удобное место с именем «Server.app»:

Тестирование и сохранение программы

Обратите внимание, что место сохранения нашего приложения - iCloud. Здесь есть специальная папка для сохранения пользовательских Automator приложений.

После того, как наш скрипт запакован в приложение, при запуске которого подключается наш сервер, можно добавить его в автозагрузку. «Системные настройки» > «Пользователи и группы». Выбираете вашего пользователя и переходите на вкладку «Объекты входа». И добавляете, собственно говоря, ваше приложение:

Создаём скрипт для автоматического подключения хостинга

Теперь при загрузке системы у вас будет подключаться файловая система вашего хостинга в папку «SERVER», которую вы можете вынести на панель «Избранное» в Finder для быстрого доступа.

Премиум уроки от WebDesign Master

Курс по созданию сайта от А до Я на Jekyll

Создание сайта от А до Я. Комплексный курс

Курс по созданию интернет-магазина на OpenCart

Создание современного интернет-магазина от А до Я

Фриланс для начинающих

Я - фрилансер! Базовый курс для начинающих

Другие уроки по теме «Инструменты»

  • Gulp include на стороне сервера Browsersync + Build
  • OptimizedHTML 5: Важные обновления стартера для JS-разработки
  • Gulp 4 - Актуальное и исчерпывающее руководство для самых маленьких
  • Актуальный способ установки и настройки окружения Windows WSL 2 (Windows Subsystem for Linux)
  • PageSpeed Insights - Оптимизация (обновление)
  • October CMS - Первое знакомство

Разделы сайта:

  • Курсы
  • HTML и CSS
  • Веб-дизайн
  • Инструменты
  • Оффтоп
  • MODX
  • WordPress
  • jQuery
  • Адаптивный веб-дизайн
  • Создание иконок
  • Обработка изображений
  • Иллюстрации и Инфографика
  • Интерфейсы UI/UX
  • Прототипирование
  • JavaScript
  • Хостинг

Полезные ресурсы:

  • Lazy Load Placeholder
  • Документация Gulp 4
  • Рабочее место разработчика
2021 © WebDesign Master